2012-07-09 61 views
1

我工作的一個小腳本,將獲得在一個虛擬機的所有快照並刪除VM的所有快照除外6個最新快照,以關閉其描述。Powershell的刪除快照cmdlet的

現在我的代碼如下所示:

get-snapshot -vm "test" | sort -property description | remove-snapshot ? 

我使用得到的最新使描述每個虛擬機上創建它的日期,並希望刪除所有,但6最新快照。我的腳本錯過了什麼來完成這項任務?

我想用-getchildren的但我無法弄清楚如何得到它哪裏會刪除快照7上。

回答

2

快照有一個名爲創建的,所以你可以排序此屬性並跳過第6.測試這在測試環境和刪除WhatIf開關刪除快照屬性。

Get-Snapshot -VM test | 
Sort-Object Created | 
Select-Object -Skip 6 | 
Remove-Snapshot -Confirm:$false -WhatIf 
+1

你好吉文利維 每當我試試這個,它似乎然而,要工作,我確實有一個問題。我今天測試了這個,創建了8個快照,並命名爲test1,test2,...,test8。 當我測試了這一點,我注意到,該整理對象的創建會選擇爲test1,test2的,等等。然而這兩個,這將跳過,並考慮將要創建的最後是TEST3和TEST4在我的測試環境。 奇怪的是,當我通過排序基於關閉說明和製作說明的獲取最新的變量,它會有什麼反應同樣測試了。 – Valrok 2012-07-10 14:38:08

+0

你會碰巧知道爲什麼當它排序時,test1和test2不是被挑選爲最古老的快照嗎? – Valrok 2012-07-10 14:42:53

+0

運行時:'Get-Snapshot -VM test |排序對象創建|選擇對象 - 跳躍6「,其中快照顯示在輸出中,最新的還是舊的? – 2012-07-10 14:49:19