2012-07-09 60 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