Powershell

無法讓 Exchange PowerShell 腳本在計劃任務下執行

  • October 17, 2017

我有一個 PowerShell 腳本,可以在直接輸入 PowerShell 時使用。PowerShell 程序使用以下快捷方式執行:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"

我在 Windows 任務計劃程序中嘗試了大約 10 種不同的方法來首先打開上面的快捷方式,然後執行我保存的腳本文件,但它不起作用。它掛在“正在執行”上。

該腳本位於此處:

Z:\Exchange PowerShell\MailboxesApproachingOverQuota.ps1

請注意,可以將腳本內容複製並粘貼到上面的 PowerShell 快捷方式中,它執行得非常好,並將輸出通過電子郵件發送給我。

請注意,我使用的 PowerShell 實例來自上面顯示的快捷方式,其中已經有參數 - 因此我很難在任務計劃程序中放置什麼。

請問有什麼幫助嗎?

謝謝 :)


編輯當我直接在 CMD 中使用以下內容時:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

我得到: http ://tinypic.com/r/n1fkmg/8

當我使用以下內容時:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

我得到:http ://tinypic.com/r/5bbac9/8

執行這個:

powershell -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -exec bypass -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"

正常打開 Exchange 命令行管理程序:http: //tinypic.com/r/2dglulf/8

首先,讓我告訴您如何從任務執行腳本:

Program/script: 
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Add arguments (optional): 
-PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'; &'Z:\Exchange Powershell\MailboxesApproachingOverQuota.ps1'"

另請注意,您用於執行腳本的使用者 ID 可能需要在本地伺服器上被授予權限。

更新:刪除 -noexit

引用自:https://serverfault.com/questions/576302