我執行 MpCmdRun.exe 的排程任務適用於一組標誌,但不適用於另一組(失敗並顯示 0x2「檔案找不到」)

我執行 MpCmdRun.exe 的排程任務適用於一組標誌,但不適用於另一組(失敗並顯示 0x2「檔案找不到」)

我有一個 GPO,它為我的 Win10 工作站提供了兩個計劃任務。

任務一執行 C:\Program Files\Windows Defender\MpCmdRun.exe -removedefinitions -dynamicsignatures

任務1

任務二運行 C:\Program Files\Windows Defender\MpCmdRun.exe -SignatureUpdate

任務2

兩者都以具有最高權限的 SYSTEM 運行,並且無論用戶是否登入: 安全設定

工作站成功從此 GPO 取得這兩項任務。任務 1 在任務 2 之前運行幾分鐘 - 它們是相關的並且需要按該順序完成,但任務 1 需要大約 30 秒才能實際運行完成。

所有工作站都成功運行了任務 1,打破了定義。

然而,當工作站自行處理時,它們都無法執行任務 2。

任務 2 設定為作為系統運行,無論使用者是否登入 - 就像任務 1 一樣。秒內死亡,錯誤代碼為0x2 - 找不到檔案。在隨機工作站的任務歷史記錄中,我會發現有時有一個條目聲稱“返回代碼 2147942402” - 這是“文件未找到”。

這很令人困惑,因為有問題的文件與任務 1 中看到的完全相同,它不回傳失敗代碼。

現在,如果在同一個失敗的工作站上我右鍵單擊該任務並點擊“運行”,它們都會成功完成。手動運行命令也可以。此外,如果我在一天中的某個時間安排完全相同的任務,並在計劃任務應該開始的時間內保持登入到範例工作站(或多個工作站),那麼它們實際上將在沒有使用者互動的情況下成功運行!

因此,如果沒有人在觀看,它就不會運行任務 2,但如果有人手動運行它或恰好登錄,它就會運行。儘管這兩個任務都是 SYSTEM 並且無論某人是否登入都被允許執行此操作,它都會執行此操作。

我現在很困惑,因為這兩個任務之間的唯一區別是一些標誌。它完全運行表明任務設定正確,但在沒有人登入的情況下仍然只有其中一項會運行。

有沒有人有某種我可以遵循的線索?

答案1

我不能具體說明它沒有找到什麼,只能說明如何找到它。如果應用程式正確傳遞錯誤 2(有時可能是偽裝的錯誤 5/53/4/其他),我將使用 procmon 形式 sysinternalshttps://learn.microsoft.com/en-us/sysinternals/downloads/procmon讓失敗的任務運行,並按進程名稱過濾進程,查看所有檔案事件並查看嘗試的內容和失敗的內容。即使沒有答案,這至少也不會引導您了解更多。

相關內容