Windows

Server 2019 自定義 PowerShell 腳本正在排隊(程式碼 325)

  • May 31, 2021

我是 Windows Server 的新手,所以我不確定我是否做錯了什麼,或者伺服器是否有問題。

我來自 Linux 背景,我想做一些類似於 cronjob 的東西。在 Windows Server 中,這似乎是由任務計劃程序執行的。我創建了一個簡單的 .ps1 腳本,將在 XX:YY 時間執行,並在我登錄時執行。

Get-Date | Out-File C:\tmp\debug\debug.txt -Append

測試後,歷史日誌顯示“Warning ….. 325 … queued … XXXXXX”。我已經用Google搜尋了一個解決方案,但Google告訴我的唯一一件事就是讓它並行執行,以防程序的現有實例已經在執行。我已經嘗試了所有這些,但它仍然將腳本放入隊列中。這個隊列似乎沒有被處理。

我將不勝感激任何幫助。

聽起來您可能已經有一些任務實例排隊,沒有配置超時,並且腳本中沒有終止來處理潛在的錯誤。

我建議通過結束任務的任何現有實例來從任務計劃程序中的全新狀態開始。右鍵點擊它並選擇“結束”。如果有許多實例排隊,您可能需要多次執行此操作。

您可以在計劃任務的屬性中進行一些調整,以幫助它保持移動。

打開任務屬性對話框並轉到設置選項卡:

  • 正如您所發現的,您可以將任務的新實例設置為並行執行。這可能是也可能不是你想要的。您的選項有:“不啟動新實例”、“並行執行新實例”、“將新實例排隊”或“停止現有實例”。
  • 根據您預計此任務的操作通常需要多長時間,您可能希望將設置更改為“如果任務執行時間超過$$ x $$ $$ units of time $$. 此設置也可以在每個觸發器的設置中更改(請參閱任務屬性的觸發器選項卡。)

在任務屬性對話框中,轉到條件選項卡:

  • 除非絕對需要,否則禁用此選項卡上的所有條件。

在任務屬性對話框中,滾動歷史選項卡以查看是否記錄了除“排隊”狀態之外的任何狀態。他們可能會提供一些關於正在發生的事情的見解。

綜上所述,這只會幫助您執行更多的任務實例,但不能解決為什麼任務沒有自行完成的原因。在這些情況下,將逐步日誌記錄添加到您的 PowerShell 腳本中會非常有幫助,這樣您就可以深入了解該腳本在事情掛斷之前的進展情況。我懷疑你會發現腳本沒有完成,這導致計劃任務永遠不會完成,並且任務的下一個實例永遠不會啟動。日誌記錄可以揭示發生這種情況的位置,因為有時手動執行腳本並不是對任務調度程序執行腳本時發生的情況的完美測試。

正如您更新的問題所指出的那樣,您只是發送一個簡單的命令,因此從長遠來看,日誌記錄可能不是很有幫助,但仍可能揭示實際錯誤是什麼。(嘗試使用內置的 $error 變數。)如果您以不同於您正在測試的帳戶執行腳本,則可能是權限錯誤。

最後,嘗試在腳本末尾添加“Exit 0”行,看看這是否有助於任務計劃程序知道腳本已成功結束。

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