Powershell

用於拍攝和刪除快照的 Powershell 腳本

  • May 19, 2016

我是 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) 部分,以便我可以將時間與我的變數進行比較。

引用自:https://serverfault.com/questions/777375