我正在编写一个 Powershell 脚本来创建新的虚拟机,作为运行 Hyper-V Server 2012R2 的 Hyper-V 服务器与运行 Hyper-V Server 2019 的新 Hyper-V 服务器之间迁移的一部分。
对于分配了单个虚拟交换机的虚拟机,此脚本运行良好,但是,我有一些虚拟机有两个交换机。对于这些虚拟机,我收到以下消息:Cannot convert 'System.Object[]' to the type 'System.String' required by parameter
。
我该如何添加第二个开关?
Import-Module -Name Hyper-V -RequiredVersion 1.1
$currentvms = Get-VM -ComputerName Hypervserver
foreach ($currentvm in $currentvms)
{
$name = ($currentvm).Name
$generation = ($currentvm).Generation
$startupmemory = ($currentvm).MemoryStartup
$virtualswitch = (Get-VMNetworkAdapter -VMName $name -ComputerName Hypervserver).SwitchName
$virtualswitchcount = (Measure-Object -InputObject $virtualswitch).Count
if ($virtualswitchcount -ne 1)
{
New-VM -Name $name -Generation $generation -MemoryStartupBytes $startupmemory -SwitchName $virtualswitch[0],$virtualswitch[1] -ComputerName Hypervserver2 -WhatIf
}
else
{
New-VM -Name $name -Generation $generation -MemoryStartupBytes $startupmemory -SwitchName $virtualswitch -ComputerName Hypervserver2 -WhatIf
}
}