![我如何允许非管理员使用shutdown.exe?](https://linux22.com/image/1288632/%E6%88%91%E5%A6%82%E4%BD%95%E5%85%81%E8%AE%B8%E9%9D%9E%E7%AE%A1%E7%90%86%E5%91%98%E4%BD%BF%E7%94%A8shutdown.exe%EF%BC%9F.png)
根据已接受答案中的评论这问题,我在运行调用 的计划任务时遇到了问题shutdown.exe
,即使用户是管理员也是如此。我正在使用他们的主帐户管理其他人的机器,因此我无法进行太多更改,因为他们喜欢保持原样。
真正奇怪的是,我只能在以下情况下运行该任务:
- 该用户是管理员。
- 他们已经定义了密码。
由于一些我不知道的奇怪原因,用户不仅必须是管理员,而且他们还必须帐户必须有密码,计划任务才能运行。否则,我会收到拒绝访问错误,任务无法运行。
我怎样才能实现这一点而不必强迫用户为他们的帐户定义密码?
本质上,剩下的目标就是每天晚上 11 点关闭计算机(无论谁登录或未登录)。
当我尝试在程序中设置任务时遇到以下错误Scheduled Tasks
:
尝试设置任务帐户信息时发生错误。
具体错误为:
0x8007005:访问被拒绝。
您没有权限执行请求的操作。
为了记录,这是我的安全策略,您可以看到我的用户有强制关机和手动关闭计算机的权限:
答案1
最简单的解决方案是将上述计划任务配置为在管理员帐户下运行。您可以不是需要使用与通常登录的用户相同的帐户 - 只需在创建任务时提供不同的凭据。
如果您不希望“管理员”拥有密码,您可以只为计划任务创建一个专用帐户。(如果您应用以下修复,受限用户帐户也可以正常工作。)
该shutdown.exe
计划需要远程关机权限跑步,而不是像往常一样SeShutdown权限– 我的猜测是它使用相同的 RPC 来关闭本地和远程计算机。(这也解释了为什么需要密码 – 默认情况下,只有控制台登录是免除的,这显然不包括 RPC。)
您可以授予远程关机权限通过secpol.msc
→当地政策→用户权限分配,通过编辑“从远程系统强制关闭”条目。
- 您可以为该任务创建一个专用帐户并将其添加在这里(最佳选择)。
- 对于任何用户来说,都可以使用交互式命令行,您可以添加
INTERACTIVE
。 - 对于任何用户的计划任务,添加
BATCH
。
答案2
这是一个更简单的解决方案:
如果只想允许本地用户运行%windir%\system32\shutdown.exe -s -t 0
,请将 授予SeRemoteShutdownPrivilege
组INTERACTIVE
。只有本地用户才是该组的成员。
操作方法:运行secpol.msc
。打开。在右侧窗格中Security Settings \ Local Policies \ User Rights Assignment
双击。单击。在文本框中输入名称并单击,然后单击,再单击一次。Force shutdown from a remote system
Add User or Group
INTERACTIVE
Check names
OK
OK
来源: http://blogs.msdn.com/aaron_margosis/archive/2006/01/27/518214.aspx
答案3
我看到您仍在尝试在没有密码的管理员帐户上安排任务。
我相信与空白密码有关的唯一其他设置是“限制本地帐户使用空白密码仅限于控制台登录”
尝试该设置。它位于“安全选项”下,就在“用户权限分配”下面。
答案4
对于使用空白密码的账户创建任务有一些限制。
您可以创建一个运行shutdown.exe的任务,但您需要设置“不存储密码”选项。这是在Windows 7 SP1上,如果您使用的是其他操作系统,请告知我们。
对于 Windows XP,使用命令行 AT 工具:
at 23:00 /every:monday,tuesday,wednesday,thursday,friday,saturday,sunday shutdown /s