我想使用任务计划程序将PC(Windows 10 Pro)挂起一段时间。在实践中,我运行的批处理文件有一定时间会挂起PC。接下来,我必须运行另一个将其打开的批处理文件。
我的问题是这些命令不起作用:
rundll32.exe powrprof.dll, SetSuspendState 0,1,0
,并且没有任何错误。我检查了事件日志浏览器,它只显示EventID 187(ApiCallerNameLength),而没有激活EventID 42(这应该激活Windows的暂停)。
我尝试了各种方法来解决该问题,但我不明白为什么它不起作用。
https://docs.microsoft.com/en-us/windows/desktop/api/powrprof/nf-powrprof-setsuspendstate
我认为本文是特权问题。你能帮我吗?
答案 0 :(得分:0)
您可以使用whoami /priv
来检查您的特权,并且应该看到类似以下内容的
Privilege Name Description State
========================================= ================================================================== ========
SeShutdownPrivilege Shut down the system Disabled
如果列出了特权,则意味着您的用户帐户拥有特权。必须在脚本中专门启用才能使用它:
要关闭本地计算机,正在调用的线程必须具有SE_SHUTDOWN_NAME特权。默认情况下,用户可以在他们登录的计算机上启用SE_SHUTDOWN_NAME 特权,管理员可以在远程计算机上启用SE_REMOTE_SHUTDOWN_NAME特权。
我还没有找到启用该特权的简单批处理解决方案,但是您可以通过使用SysInternals的-d
选项的SysInternals psshutdown
工具来完成同一工作。
我发现在脚本执行过程中修改权限的PowerShell解决方案对我不起作用。