Я новичок в PowerShell, и я хочу создать скрипт для создания моментальных снимков всех работающих виртуальных машин и удаления моментальных снимков, которые имеют более чем 5 дней. У меня вот что:
$Time = 5
$VMs = Get-VM | Where-Object {$._State –eq 'Running'}
foreach($VM in $VMs){
$Snapshots = Get-VMSnapshot $VM
foreach($Snapshot in $Snapshots){
if ($snapshot.CreationTime.AddDays($Time)) {
Remove-VMSnapshot $Snapshot
}
}
Checkpoint-VM $VM
}
Но не работает.
Прочитав некоторые комментарии, я смог решить проблема, с которой я столкнулся. Сценарий будет выглядеть следующим образом:
$Days = 4
$VMs = Get-VM | Where-Object {$_.State –eq 'Running'}
foreach($VM in $VMs){
$Snapshots = Get-VMSnapshot $VM
foreach($Snapshot in $Snapshots){
if ($snapshot.CreationTime.AddDays($Days) -lt (get-date)) {
Remove-VMSnapshot $Snapshot
}
}
Checkpoint-VM $VM
}
Обратите внимание, что я исправляю опечатку, а также добавляю часть (get-date), чтобы я мог сравнить время с моей переменной.