如何使用具有特权的 schtask 运行任务?

Posted

技术标签:

【中文标题】如何使用具有特权的 schtask 运行任务?【英文标题】:How do I run a task using schtask with privileges? 【发布时间】:2011-06-11 01:42:18 【问题描述】:

我正在尝试使用任务调度程序来解决 UAC 绕过错误,而不是使用 GUI 工具,而是尝试使用 schtasks.exe(等效的命令行工具)来解决。除了最重要的部分——“以最高权限运行”之外,我或多或少都做了同样的事情。

使这一切成为可能的任务调度程序错误 - http://www.petri.co.il/bypass-uac-using-desktop-shortcut.htm

这是我试过的命令:

schtasks /create /tn name /tr notepad.exe /sc once /st 00:01 /RL highest

当我添加 /RL 最高时,它显示ERROR: Access is denied。使用任务调度程序时不会发生这种情况。

【问题讨论】:

【参考方案1】:

除非您自己被提升,否则您无法创建运行提升的任务。

换句话说,您需要运行提升的 schtasks。

这在任务计划程序中起作用的原因是运行任务计划程序会自动提示您提升(而 schtasks 不会,这对于命令行工具来说是正常的)。

(我也不会说任务计划程序允许任务提升运行是一个错误。正如您所发现的,它没有提供提升未提升代码的方法。)

【讨论】:

不,任务计划程序不会提示提升,这就是它的美妙之处。此外,在 GUI 调度程序中更改运行级别的值,我在命令行中查询时没有发现任何区别。 任务计划程序肯定会在此处提示提升。你有什么 UAC 设置?您使用的是 Vista 还是 Windows 7?您的帐户是管理员吗? 我刚刚检查过,任务计划程序是 Microsoft 的神奇程序之一,在默认的 Windows 7 配置下,它可以在不提示的情况下进行升级,这就是您看不到 UAC 提示的原因。但是,它仍然在提升,而且这不是您可以用于自己的代码的东西(除非您使用像我在这里写的那样的 hacky 方法:pretentiousname.com/misc/win7_uac_whitelist2.html)——它适用于微软,而不是我们这些凡人。 ) Windows 7,所有默认选项。当我更改 Windows 设置时,默认用户和 UAC 不会提示。是的,当 UAC 完全开启时,它不起作用:\【参考方案2】:

您的命令是正确的,只需以 Administrator 身份运行即可。

【讨论】:

以上是关于如何使用具有特权的 schtask 运行任务?的主要内容,如果未能解决你的问题,请参考以下文章

schtasks /create(有一个每天运行并每小时重复的任务

如何从 Visual Studio 2010 安装程序运行 schtasks.exe?

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

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

Powershell 和 schtask 与具有空间的任务

批处理 schtasks指令 更改计划任务的延时属性