系统极客一直在努力
专注操作系统及软件使用技能

如何快速向Hyper-V VM批量添加相同ISO映像

IT Pro 在建立 Hyper-V 实验环境时,经常需要为多个 VM 挂载同一个 ISO 映像。例如,要建立有多台 Exchange 2016 服务器的实验环境,就需要将 Exchange 2016 的安装映像挂载到多个虚拟机。


为了避免重复繁杂的操作,我们可以事先将Hyper-V VM 定为相同的命名约定,把 Exchange 2016 服务器的 VM 命名为以 E16 开头。这样就可以直接使用 PowerShell 的 Get-VM cmdlet 来使用通配符获取 VM 集合,以方便批量添加 ISO 映像。

批量添加ISO映像

以下就是挂载相同 ISO 的 PowerShell 示例:

Get-VM E16* | Get-VMDVDDrive | Set-VMDvdDrive -Path "F:\ISOs\Exchange\2016\ExchangeServer2016-x64-cu6.iso"

批量卸载ISO映像

要批量卸载 ISO 映像,只需将路径设置为 $Null 即可:

Get-VM E16* | Get-VMDVDDrive | Set-VMDvdDrive –Path $Null

潜在的截断路径问题

由于不同 Hyper-V 虚拟机挂载的 ISO 文件的路径不同,默认可能无法在 PowerShell 中显示完整路径:

Get-VM E16* | Get-VMDVDDrive | Select-Object VMName, Path

如果你遇到 ISO 路径截断的问题,可以使用 –ExpandProperty 参数来显示完整路径。但由于 Path 列的数据类型原因,使用此参数就无法显示前面的列:

Get-VM E16* | Get-VMDVDDrive | Select-Object –ExpandProperty Path

如果你想两全其美,既要显示 VMName 又要查看其挂载 ISO 的完整路径,可以使用如下 PowerShell 命令:

Get-VM E16* | ForEach { $Path = (Get-VMDVDDrive $_ | Select-Object -ExpandProperty Path);Write-Host $_.VMName $Path}

赞(0) 赞赏

评论 1

  1. #1

    咦,怎么停更了?

    Slash7年前 (2017-08-25)回复

微信赞赏