예약 된 작업의 Exchange PowerShell이 ​​영구적으로 실행 됨 Exchange 2010 PowerShell 스크립트

예약 된 작업으로 실행하려는 Exchange 2010 PowerShell 스크립트 몇 개가 있습니다.

“다른 사용자로 실행”을 사용하여 PowerShell을 시작하면 스크립트를 실행할 수 있으며 제대로 실행됩니다.

동일한 사용자를 사용하여 작업을 예약하면 작업이 계속 실행 중 상태로 유지됩니다.

작업이 어디에서 멈추는 지 어떻게 알 수 있습니까?

참고로 Exchange 항목을 활성화하는 방법은 다음과 같습니다.

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

작업 스케줄러에서 스크립트를 실행하려고 시도한 방법은 다음과 같습니다.

  • powershell-명령 “& {. ‘c : \ windows \ script.ps1’}”
  • powershell-파일 ‘c : \ windows \ script.ps1’
  • powershell-파일 “c : \ windows \ script.ps1”

모두 같은 결과입니다. 으악 …



답변

실행 정책을 수정하거나 -ExecutionPolicy Bypass명령 줄 매개 변수로 지정해야합니다 .

powershell -Command "<path to .ps1 script>" -ExecutionPolicy Bypass


답변

이것이 당신이하는 방법인지 확실하지 않지만 작업 스케줄러를 통해 PowerShell 스크립트를 실행할 때 “프로그램 시작”작업을 사용하고 powershell을 선택한 다음 거기에서 인수를 추가하십시오. 그것은 당신이 여기서하고있는 것일 수도 있지만, 불분명합니다. 스크린 샷은 다음과 같습니다.
여기에 이미지 설명을 입력하십시오

CompWiz 당 실행 정책도 문제가 될 수 있습니다.


답변

나는 같은 문제가 있었다. 필자의 경우 해결책은 “start in”디렉토리를 지정하는 것입니다 (내 스크립트는 파일의 전체 경로를 지정하지 않았기 때문에 찾을 수없는 파일의 내용을 읽습니다).


답변

나는 동일한 문제가 있었고 taskkill 명령을 사용하는 “user279399″의 의견은 매우 도움이되었으며 수정이 필요했습니다. 인수 구문 끝에 내 솔루션이 있습니다.

taskkill /f /fi "USERNAME eq domain\exchadmin" /im powershell.exe

이 명령은 해당 사용자 계정으로 실행중인 powershell 세션 만 종료합니다. 예약 된 작업을 실행하기 위해 별도의 Exchange 관리자 계정을 갖는 것이 가장 좋습니다.


답변

스크립트 끝에 [taskkill / f / im “powershell.exe”]를 추가하면 모든 “powershell.exe”프로세스가 종료됩니다. 현재 power-shell 프로세스를 종료하는 방법을 모르겠습니다 ([cmd.exe / c]와 동일). 그러나 그것은 트릭을 할 것입니다.


답변