5

Windows 7(Windows XPの一部)の一部であるグループポリシーエディターを使用して、いわゆるシャットダウンスクリプトを実行します。このスクリプトは、システムがシャットダウンまたは再起動されるたびに自動的に実行されます。私の問題は、ユーザーがシステムをシャットダウンすることを選択したのか、それとも代わりに再起動を選択したのかをスクリプトで知る必要があるということです。どちらのアクションでもWindowsはシャットダウンスクリプトを実行しますが、そのスクリプトの実行中に実際に実行されたアクションを特定するにはどうすればよいですか?

シャットダウン中に、システムが現在シャットダウンまたは再起動を実行しているかどうかを知る方法はありますか?

4

1 に答える 1

9

Vistaより前のシステムでは、レジストリを照会できます。

下にあるシャットダウン設定DWORDHKCU\Software\Microsoft\Windows\CurrentVersion\Explorerには、現在のユーザーの [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 に答える