Powershell

計劃任務中的 PowerShell 腳本錯誤

  • April 4, 2017

我在多台伺服器上執行兩個 PowerShell 腳本作為計劃任務。一個腳本 (#1) 將文件夾從一個應用程序移動到另一個文件夾(垃圾箱),另一個腳本 (#2) 重新啟動服務。

腳本 #1 通過將文件夾複製到目標路徑然後刪除源路徑中的文件夾來移動文件夾。該腳本在 PowerShell 控制台中手動執行時有效,但當它作為計劃任務執行時,它不會將文件夾複製到目標路徑,但會刪除源路徑中的文件夾。

腳本 #2 在兩台伺服器上重新啟動 MySQL 和 IIS,但它通常無法在第三台伺服器上重新啟動 MSSQL。當我檢查計劃任務歷史記錄時,腳本會執行 30 分鐘,然後才會被調度程序強制停止。它重新啟動單個 MSSQL 實例,因此最多只需要幾分鐘。

兩個腳本都使用 -ExecutionPolicy Bypass 以最高權限執行,並且 Start In 文件夾設置為其安裝路徑。我收到歷史記錄中的操作程式碼錯誤 (2)。這是一條未找到文件的消息。每個腳本都使用一個 XML 文件進行設置。

有沒有人知道我可能缺少什麼讓腳本在無人值守的情況下執行?

謝謝。

計劃任務使用什麼樣的憑據執行?系統和其他本地帳戶只能在本地系統上使用。如果腳本通過網路訪問其他電腦,則任務需要使用對其他網路資源具有足夠權限的域帳戶執行。

在每個腳本的第一行/最後一行,添加以下內容:

start-transcript c:\temp\something.log
stop-transcript

這樣您就可以查看在腳本執行期間引發了哪些錯誤。

在刪除源之前驗證複製是否成功。如果使用 cmdLet 完成複制,copy-item請查看$?. 如果是EXE之類的robocopy看看$lastExitCode

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