我想使用任务计划程序暂停我的电脑(Windows 10专业版)一段时间。在实践中,我运行了一个批处理文件,该文件具有挂起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
在我看来,这篇文章是一个特权问题。你能帮帮我吗?
发布于 2019-05-21 05:47:57
您可以使用whoami /priv
检查您的权限,您应该会看到类似以下内容:
Privilege Name Description State
========================================= ================================================================== ========
SeShutdownPrivilege Shut down the system Disabled
如果列出了该权限,则表示您的用户帐户具有该权限。它必须在脚本期间专门启用的,才能使用:
若要关闭本地计算机,调用线程必须具有SE_SHUTDOWN_NAME权限。默认情况下,用户可以在他们登录的计算机上启用SE_SHUTDOWN_NAME权限,管理员可以在远程计算机上启用SE_REMOTE_SHUTDOWN_NAME权限。
我还没有找到一个简单的批处理解决方案来启用这个特权,但是您可以使用SysInternals的psshutdown
工具和-d
选项来完成相同的事情。
我发现在脚本执行过程中修改权限的PowerShell解决方案对我不起作用。
https://stackoverflow.com/questions/56225705
复制相似问题