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 }
但不工作。
在閱讀了一些評論後,我能夠解決我遇到的問題。腳本將如下所示:
$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) 部分,以便我可以將時間與我的變數進行比較。