LoginSignup
1
5

More than 5 years have passed since last update.

Windowsの再起動が正しく行われたかをイベントログからPowerShellで確認する

Posted at

背景

業務で、Windowsをタスクスケジューラなどで、定期再起動している場合、その時間帯は、監視対象外にしていると思います。その場合、再起動がうまくいったかって、わからないと思います。
起動してこなければ、監視再開後に、死活監視でわかると思いますが、再起動の停止に失敗した場合(起動したまままの場合)は、監視ではわからないですよね。

そこで、監視再開後の時間に、再起動が実施されたかをイベントログから確認する為のPowerShellを作成しました。

再起動イベントログ確認のPowerShell

再起動イベントログ確認のPowerShellです

TeikiRebootCheck.ps1
$SEARCHTIME = (Get-Date).AddMinutes(-30)

$RESULT = (Get-EventLog System -After $SEARCHTIME | Where-Object {$_.Source -match "EventLog" -and $_.EventID -match "6009"} | Measure-Object).Count

if ($RESULT -eq 1) {
    Write-EventLog -LogName Application -Source TeikiReboot -EventID 100 -EntryType Information -Message "再起動に成功しました"
}else{
    Write-EventLog -LogName Application -Source TeikiReboot -EventID 200 -EntryType Error -Message "再起動に失敗しました"
}

PowerShellの解説

$SEARCHTIME = (Get-Date).AddMinutes(-30)

1行目で、現在の時刻から30分前の時間を変数に代入します。

ちなみに、
60分前は、Get-Date).AddMinutes(-60)
3日前は、(Get-Date).AddDays(-3)
です。

$RESULT = (Get-EventLog System -After $SEARCHTIME | Where-Object {$_.Source -match "EventLog" -and $_.EventID -match "6009"} | Measure-Object).Count

2行目で、システムのイベトログから、ソースが「EventLog」、イベントIDが「6009」のイベントログの数をカウントしています。

今回は、1行目で30分前の時間を取得し検索対象としているので、30分以内に再起動のイベントログがあるかをカウントしています。

if ($RESULT -eq 1) {
    Write-EventLog -LogName Application -Source TeikiReboot -EventID 100 -EntryType Information -Message "再起動に成功しました"
}else{
    Write-EventLog -LogName Application -Source TeikiReboot -EventID 200 -EntryType Error -Message "再起動に失敗しました"
}

最後に、再起動のイベントの数が、1個ならば、再起動成功のイベントログを出力、1個以外なら、再起動失敗のイベントログを出力しています。

使い方(使いどこ)

Windowsの定期再起動後、監視対象外の時間が終わった後に、このPowerShellを実行するように、タスクスケジューラなどで設定し、このPowerShellで出力したイベントログを監視対象とする。とかですかね。

検索条件やif文のアクションの変更で、なにかに応用できるかとも思います。

実行する前に

今回は、最後のイベントログ出力のところで、ソースが「TeikiReboot」というログを出力していますが、このまま実行すると、そんなソース無いって怒られます。

ですので、あらかじめ以下を実行し、ソースを作成する必要がありますので、ご注意ください。

New-EventLog -LogName Application -Source TeikiReboot
1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5