バックアップソフトウェアを実行しているサーバーがあり、ソフトウェアには独自のイベントログがあります。次のコマンドを使用して、最新のイベントログエントリを取得できます。
Get-EventLog EventLogName -ComputerName server.example.com -newest 1
それは私にこのような結果を与えます:
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
64292 Aug 13 15:51 Information BackupSoftware 29593 Transfer of 1096 KB...
私がやりたいのは、最新のイベントのタイムスタンプが1時間より古い場合に、アクションをトリガーする(たとえば、2番目のスクリプトを起動する)ことです。
どんな助けでもいただければ幸いです。
$Event = Get-EventLog Application | ? { $_.Source -EQ 'BackupSoftware' } | Sort Time | Select -Last 1
If($Event.Time -LT (Get-Date).AddHours(-1))
{
Do-Stuff
}
これにより、ソースが「BackupSoftware」のアプリケーションログで最新のイベントが検出されます。
$Event = Get-EventLog BackupSoftware | Sort Time | Select -Last 1
If($Event.Time -LT (Get-Date).AddHours(-1))
{
Do-Stuff
}
これにより、ソースやEventIdに関係なく、BackupSoftwareという名前のカスタムログで最新のイベントが検出されます。
どちらの場合も、スクリプトはDo-Stuff
イベントが1時間以上経過している場合。