我正在尝试使用 PowerCLI 从多个服务器获取快照。
Connect-VIServer -server 192.168.0.1 -user acconut -password xxx
$vmlist = Get-Content C:\Users\Desktop\Test\Servers.txt
foreach($VM in $VMlist) {
New-Snapshot -VM $vm -Name Temp-SnapShot -description (get-date),'Created for patching'
}
Disconnect-VIServer -Confirm:$false
如果我删除get-date
,该脚本将起作用。但我需要在描述中输入日期。我应该如何更改上面的脚本以在快照的描述中包含 Get-Date
?
此外,我需要在几天后删除这些快照:
Connect-VIServer -server 192.168.0.1 -user acconut -password xxx
$vmlist = Get-Content C:\Users\Desktop\Test\Servers.txt
foreach($VM in $VMlist) {
Remove-Snapshot -VM $vm -snapshot -confirm:$false
}
Disconnect-VIServer -Confirm:$false
我无法使用 Remove-Snapshot
删除快照,因为出现此错误:
Remove-Snapshot : Missing an argument for parameter 'Snapshot'. Specify a parameter of type 'VMware.VimAutomation.ViCore.Types.V1.VM.Snapshot[]' and try again.
感谢您的帮助。
最佳答案
在描述部分,您可以放置$date = get-date
和do -description $date
。这应该可行。
在删除快照之前,您需要先获取快照。我想说编辑您的删除快照行以包含以下内容:
Get-Snapshot -VM $vm | Remove-Snapshot -confirm:$false
您甚至可能想添加 -RemoveChildren:$true (这将删除“所有”快照)
关于virtual-machine - 使用 PowerCLI 添加和删除多个服务器的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208140/