Набросал небольшой скриптец для VMware ESXi, чтобы проверять как давно менялось состояние виртуальных машин. При запуске он заполняет кастомное поле «Power» состоянием и датой, когда это состояние было обнаружено. Кинув в шедулер можно с некоторой точностью понимать, что вот эту виртуалку выключили только вчера, а вот та — выключена уже пару лет (конечно после того как этот скрипт пару лет проверял ее состояние =). Скрипт использует VMware PowerCLI
Add-PSSnapin VMware.VimAutomation.Core Connect-VIServer -Server localhost Get-VM | ForEach-Object { $vm = $_ $date = (Get-Date -UFormat "%Y-%m-%d %R").ToString() $AnnotationStatus = (Get-Annotation $_ | Where-Object { $_.Name -eq "Power"}).Value if ( ($_.PowerState -eq 'PoweredOn') -and ($AnnotationStatus -like 'Down*') ) { $vm | Set-Annotation -CustomAttribute "Power" -Value "Up since $date" } if ( ($_.PowerState -eq 'PoweredOn') -and ($AnnotationStatus -eq '') ) { $vm | Set-Annotation -CustomAttribute "Power" -Value "Up since < $date" } if ( ($_.PowerState -eq 'PoweredOff') -and ($AnnotationStatus -like 'Up*') ) { $vm | Set-Annotation -CustomAttribute "Power" -Value "Down since $date" } if ( ($_.PowerState -eq 'PoweredOff') -and ($AnnotationStatus -eq '') ) { $vm | Set-Annotation -CustomAttribute "Power" -Value "Down since < $date" } }