我正在使用标准脚本在VM的SCVMM中采用单个检查点。它是:
Get-SCVirtualMachine -Name 'servername' | New-SCVMCheckpoint
我也在使用:
Checkpoint-VM -Name Test -SnapshotName BeforeInstallingUpdates
我想通过foreach命令使用任一命令来检查服务器虚拟机。有人可以引导我进行添加吗?
我在c:\temp\checkpoint.txt
有一个文本文件
所以我在想类似的东西:
$vms = "c:\temp\checkpoint.txt"
foreach ($vm in $vms) {
Get-SCVirtualMachine -Name '$vms' | New-SCVMCheckpoint
}
只是不确定100%非常感谢您的协助和知识分享
在您发布的循环中,您正在循环字符串c:\temp\checkpoint.txt
您首先需要像这样从文本文件中实际获取服务器名称列表:
$vms = Get-Content "c:\temp\checkpoint.txt"
但是您如何精确执行操作取决于该文件的格式
一旦有了虚拟机名称列表,就需要更改foreach循环,使其看起来更像这样:
foreach ($vm in $vms) {
Get-SCVirtualMachine -Name $vm | New-SCVMCheckpoint
}
[请注意,我从执行行中的变量名周围删除了'
,并且它也应该是$vm
而不是$vms
,因为后者是整个集合,您只想使用特定的我们正在循环中查看的虚拟机