向 New-VM 添加多个虚拟交换机?

向 New-VM 添加多个虚拟交换机?

我正在编写一个 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
    }
    
}

相关内容