Windowsバックアップの結果通知
Windowsバックアップの結果通知は、タスクスケジューラにて成功/失敗のイベントログをトリガーにしたタスクを作るよう説明しているサイトが多い。 が、自社の環境ではちょいちょい通知が来ないことがある。イベントログを確認してみると記録はされている。イベントログのトリガは不安定と感じている。
そこで、直接成功/失敗のイベントログを見に行って、その結果をもとに通知するほうが確実と判断。現在テスト中。 以下がとても参考になった。
実際には以下のようなコードで運用している
# 何時間前までのログを対象にするか $PastHours=12 $StartAt = (Get-Date).AddHours(-$PastHours) # バックアップ成功時に記録されるイベントログ $FilterHashTable = @{ logname = "Microsoft-Windows-Backup" id = 4 StartTime = $StartAt } try{ $actions = (Get-WinEvent -FilterHashtable $FilterHashTable -ErrorAction Stop) if ($actions){ ForEach($action in $actions){ Write-Host "OK: Windows Backup Completed Successfully at $(($action.Task)),$(($action.TimeCreated))" Exit 0 } }else{ Write-Host "CRITICAL: Windows Backup has not run in past $PastHours hours" exit 1 } }catch [Exception] { Write-Host "CRITICAL: Windows Backup has not run in past $PastHours hours" Exit 1 }