用于在SCVMM中的多个服务器上创建检查点的脚本

问题描述 投票:0回答:1

我正在使用标准脚本在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%非常感谢您的协助和知识分享

powershell foreach hyper-v
1个回答
0
投票

在您发布的循环中,您正在循环字符串c:\temp\checkpoint.txt

您首先需要像这样从文本文件中实际获取服务器名称列表:

$vms = Get-Content "c:\temp\checkpoint.txt"

但是您如何精确执行操作取决于该文件的格式

一旦有了虚拟机名称列表,就需要更改foreach循环,使其看起来更像这样:

foreach ($vm in $vms) {
    Get-SCVirtualMachine -Name $vm | New-SCVMCheckpoint
}

[请注意,我从执行行中的变量名周围删除了',并且它也应该是$vm而不是$vms,因为后者是整个集合,您只想使用特定的我们正在循环中查看的虚拟机

© www.soinside.com 2019 - 2024. All rights reserved.