所以我一直在研究一個腳本,當一個服務失敗時本質上發送一封電子郵件。該腳本工作得很好,因爲我從PowerShell手動運行它。我收到了電子郵件,並且所有內容都被檢出 我再加入到服務: Service Recovery Options在Windows服務失敗時運行Powershell腳本。在手動運行時運行,但在服務失敗時運行。需要的建議
我告訴它通過鏈接到可執行文件運行PowerShell的:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
而執行下面的腳本:
-command C:\Users\andreand\Desktop\Sendmail.ps1
如前所述,我在PowerShell中手動嘗試了這一點,並且出現錯誤。如果我在-command之前附加了PowerShell位置,它將起作用。像這樣:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command C:\Users\andreand\Desktop\Sendmail.ps1
所以這個工程,如果我手動運行它,但是當服務失敗時,什麼都不會發生。 我通過執行/taskkill /F /PID pid
來觸發失敗,並且我可以看到服務已停止。
我錯過了什麼?我覺得我如此親密,令人沮喪!
檢查系統事件日誌以查看您的恢復腳本是否已執行。我還假設腳本作爲服務的用戶上下文運行,因此您可能需要檢查該用戶是否可以成功運行該腳本。 –
正確的做到了這一點。出現錯誤意味着服務意外終止,並且「糾正措施將在0毫秒內完成;運行已配置的恢復程序」。查看事件查看器的Powershell選項卡我可以看到Powershell似乎也開始了。我已經將PowerShell中的執行策略設置爲RemoteSigned,所以腳本應該可以運行。 – Andreas
聽起來像是試圖執行它。你有沒有檢查它是否有用戶上下文問題? –