我运行 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 一样。但是,如果我只是将其安排在某个随机时间(我尝试了很多次),计划任务将始终启动并在 1 秒内终止,错误代码为 0x2 - 即文件未找到。在随机工作站上的任务历史记录中,我会发现它有时会有一个条目声称“返回代码 2147942402” - 这是“文件未找到”。

这很令人困惑,因为有问题的文件与任务 1 中看到的完全相同,而任务 1 并没有返回失败代码。

现在,如果我在同一个发生故障的工作站上右键单击任务并点击“运行”,它们都会成功完成。手动运行命令也可以。此外,如果我在一天中的某个时间安排完全相同的任务,并在计划任务应该启动时保持登录到示例工作站(或工作站),它们实际上将在没有用户交互的情况下成功运行!

因此,如果没有人监视,它不会运行任务 2,但如果有人手动运行它或恰好登录,它就会运行。尽管两个任务都是系统任务,并且无论是否有人登录,它都被允许执行,但它仍会执行此操作。

我现在很困惑,因为这两个任务之间的唯一区别就是一些标志。它完全运行表明任务设置正确,但仍然只有一个任务会在没有人登录的情况下运行。

有人能给我提供一些这方面的线索吗?

答案1

我无法具体说明它没有找到什么,只能说如何找到它。如果应用程序正确传递了错误 2(有时可能是伪装的错误 5/53/4/其他),我会使用 sysinternals 的 procmonhttps://learn.microsoft.com/en-us/sysinternals/downloads/procmon让失败的任务运行,并根据进程名称过滤进程,查看所有文件事件,查看尝试了哪些操作以及哪些操作失败。即使没有答案,Thst dhoufl sat 至少可以引导您了解更多信息。

相关内容