Windows 2012:如何使电源按钮在所有情况下都能正常工作?

Gre*_*SAT 9 windows-server-2012 shutdown

我需要使用电源按钮正确关闭一些 Windows 2012 服务器。

  • 如果没有人登录,电源按钮会正确关闭服务器
  • 如果有人在没有阻止程序的情况下登录,也没关系

但:

  • 如果会话被锁定,电源按钮什么也不做
  • 如果有人使用阻止程序(例如带有未保存文档的记事本)登录,则该按钮也不会执行任何操作

在以前的 Windows 版本中,我习惯于使用 GUI 配置电源按钮行为并修改注册表项 ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon),但这似乎不再相关。

有谁知道“官方”的方式,或者一个技巧?

编辑:
每次按下电源按钮时,系统日志都会显示一个事件。The kernel power manager has initiated a shutdown transition事件 ID 为 109。
当会话被锁定时,此事件之后没有任何内容。其他日志中没有其他事件。
当程序拒绝关闭时,我有相应的日志条目,所以这很快就可以了。

Ber*_*ITS 6

当会话被锁定时您无法关闭 2012 服务器的电源这一事实可能是设计使然。我遇到了类似的需求,但不知道有任何政策或注册表更改允许这样做。

我使用了一个简单的技巧:我捕获了电源按钮事件,它只是在超时后使用所需的参数运行我最喜欢的 shutdown.exe。
如果您使用正确的关机参数,您将不会被打开的程序阻止。

要捕获事件,只需打开任务调度程序并创建一个在所需事件 ID 上触发的任务。

  • 同样作为参考,在我的案例中,事件是具有这些属性的基本事件日志:系统,来源:内核电源,事件 ID:109 (4认同)
  • 作为参考,我使用的命令是:shutdown /s /t 10 /dp:0:0 (3认同)