5

我使用 Windows 7(也是 Windows XP)的一部分的组策略编辑器来运行所谓的关闭脚本,每次系统关闭或重新启动时都会自动执行该脚本。我的问题是:我需要在我的脚本中知道用户是否选择了关闭系统,或者他是否选择了重新启动。这两个操作都会使 Windows 运行关闭脚本,但是在脚本执行期间如何确定实际执行了哪个操作?

在关机期间,有什么方法可以知道系统当前是执行关机还是重新启动?

4

1 回答 1

9

pre-vista 系统上,您可以查询注册表

下找到的关机设置DWORDHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer存储了从当前用户的 Shut Down Windows 对话框的列表中最近选择的设置。

更新的系统上,您可以在关闭脚本中查询系统事件日志,如下所示:

$systemstateentry = get-eventlog -LogName system -Source User32 | ?{$_.eventid -eq 1074} | select -first 1

switch -regex ($systemstateentry.message) 
    { 
        ".*restart.*" {"restart"} 
        ".*power off.*" {"power off"} 
        default {"unknown"}
    }
于 2012-05-21T12:12:37.000 回答