如何使用 SCHTASKS 在 SYSTEM 用户帐户下创建计划任务

Posted

技术标签:

【中文标题】如何使用 SCHTASKS 在 SYSTEM 用户帐户下创建计划任务【英文标题】:How to create a scheduled task under SYSTEM user account with SCHTASKS 【发布时间】:2011-09-22 14:20:24 【问题描述】:

我目前正在尝试使用以下命令让 SCHTASKS 在 SYSTEM 帐户下创建计划任务:

schtasks.exe" /s "\\" /u "SYSTEM" /Create /SC DAILY /MO "7" /ST "12:00" /TN "mytask" /TR  "C:\test.exe "C:\""

虽然它输出:

ERROR: User credentials are not allowed on the local machine.

【问题讨论】:

出于好奇,为什么要在SYSTEM下运行? @Cody Gray:以 SYSTEM 身份运行程序如何特别有助于恶意软件的创建?这是一个荒谬的说法,因为 SYSTEM 并没有有效地授予您比管理员更多的权限。我可以想出很多你想要安排任务在 SYSTEM 用户下运行的原因。 @wj32:记录在案,在现已删除的 cmets 中,原始发帖人证实他的目标确实是制造恶意软件。我最初的评论根本没有提到恶意软件,只是暗示可能有比在 SYSTEM 用户下运行更好的方法来解决问题。正如我所提到的,它被命名为 SYSTEM 是有原因的,表明它是为系统保留的,而不是用于用户任务,甚至是管理任务。我不同意您的说法,即“您有很多理由希望安排任务在 SYSTEM 用户下运行”。您还没有提供。 @Cody Gray:非 MS 服务通常作为 SYSTEM 运行,所以我想可以使用计划任务来实现类似的功能。事实上,如果您查看任务计划程序控制台 (taskschd.msc),您会发现很多任务就是这样做的。 @Cody Gray:打扰一下?服务用户模式程序。我使用的是 Windows 7,所以我认为你看的不是很仔细。 Microsoft 的许多默认任务以 SYSTEM 身份运行。现在您是否真的在质疑 SYSTEM 用户对服务有用的事实?这比你最初的要求还要糟糕。 【参考方案1】:

    打开提升的(管理员)命令提示符。

    输入以下命令:

    schtasks.exe /s "\" /ru "SYSTEM" /Create /SC DAILY /MO "7" /ST "12:00" /TN "mytask" /TR "C:\test.exe "C: \"

请注意区别在于,要指定SYSTEM帐户,您需要使用/RU开关,而不是/U

【讨论】:

【参考方案2】:
    在调度程序中创建您的任务,然后将它们导出为 XML (https://superuser.com/questions/1334495) 创建一个文本文件: schtasks.exe /create /RU SYSTEM /TN "Folder\TaskName" /XML "I:\Location\TaskName.xml" 任意多行,每个任务,然后将文件另存为批处理 (.bat),以管理员身份运行(右键单击以管理员身份运行)。 应用到您想要运行它的计算机上。

【讨论】:

以上是关于如何使用 SCHTASKS 在 SYSTEM 用户帐户下创建计划任务的主要内容,如果未能解决你的问题,请参考以下文章

管理用户的 Schtasks 权限错误?

schtasks 参数禁用“用户登录时执行”

如何在不打开新命令行窗口的情况下使用“schtasks”执行计划任务?

如何使用 SCHTASKS 正确引用文件路径

利用批处理自动创建schtasks系统任务

如何使用 C++ 在任务计划程序中创建任务