我有我们的监控软件的脚本,我想监控失败或成功的 Windows 计划任务。
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 递增值的原因。
问题是,每次运行脚本时,我都需要为每个对象设置相同的增量值。而且它需要是动态的,当我添加任务时,它会给它以前从未使用过的数字,他们会坚持使用它,当我删除任务时,它将删除该数字并且永远不会再次使用,或者它只会用于新的创建的任务。
有可能吗?