監視ソフトウェアのスクリプトがあり、失敗または成功したウィンドウのスケジュールされたタスクを監視したいと考えています。
Powershell スクリプトは次のようになります。
#Monitor windows tasks for checkmk raw 1.6.0
#Last update: 31.05.2021
$tasks = Get-ScheduledTask | Get-ScheduledTaskInfo | Select TaskName,LastRunTime,LastTaskResult
#CHECKMK states
#$OK = "0 MWT -"
#$Warning = "1 MWT -"
#$Crit = "2 MWT -"
#$Unknown = "3 MWT -"
$incre
foreach($task in $tasks)
{
if($($task.LastTaskResult) -eq 0){
$incre++
Write-Host "0 MWT$incre - Scheduled task: $($task.TaskName) was succesfull"
}
else{
$incre++
Write-Host "2 MWT$incre - Scheduled task: $($task.TaskName) has failed."
}
}
Clear-Variable -Name "incre"
スクリプトの出力は次のとおりです。
2 MWT1 - Scheduled task: ftp has failed.
0 MWT2 - Scheduled task: Optimize Start Menu Cache Files-S-1-5-21-3586077036-2416152140-2432273966-1104 was succesfull
0 MWT3 - Scheduled task: Adobe Acrobat Update Task was succesfull
0 MWT4 - Scheduled task: FSRM_Update was succesfull
各行は、監視ソフトウェアにサービスを追加します。各行MWT1、2、3の値をインクリメントする理由は、異なる名前を持つ必要があるためです。
問題は、スクリプトが実行されるたびに各オブジェクトに同じインクリメント値が必要なことです。そして、それは動的である必要があります。タスクを追加すると、以前に使用されたことのない番号が与えられ、それらはそれに固執し、タスクを削除すると、その番号が削除され、二度と使用されないか、新しくのみ使用されますタスクを作成しました。
それはどういうわけか可能ですか?