用于拍摄和删除快照的 Powershell 脚本

用于拍摄和删除快照的 Powershell 脚本

我是 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
}

但没有作用。

答案1

阅读了一些评论后,我能够解决我遇到的问题。脚本如下所示:

$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)部分,以便我可以将时间与我的变量进行比较。

相关内容