Lucrez la un script Powershell pentru a crea noi mașini virtuale ca parte a unei migrări între un server Hyper-V care rulează Hyper-V Server 2012R2 și un nou server Hyper-V care rulează Hyper-V Server 2019.
Pentru mașinile virtuale care au un singur comutator virtual alocat, acest script funcționează bine, cu toate acestea, am câteva mașini virtuale care au două comutatoare. Pentru acele VM-uri, primesc acest mesaj: Nu se poate converti „System.Object[]” în tipul „System.String” cerut de parametru
.
Cum aș proceda pentru a adăuga al doilea comutator?
Import-Module -Nume Hyper-V -RequiredVersiunea 1.1
$currentvms = Get-VM -ComputerName Hypervserver
foreach ($currentvm în $currentvms)
{
$nume = ($currentvm).Nume
$generatie = ($currentvm).Generatie
$startupmemory = ($currentvm).MemoryStartup
$virtualswitch = (Get-VMNetworkAdapter -VMName $name -ComputerName Hypervserver).SwitchName
$virtualswitchcount = (Measure-Object -InputObject $virtualswitch).Count
dacă ($virtualswitchcount -ne 1)
{
New-VM -Name $nume -Generation $generation -MemoryStartupBytes $startupmemory -SwitchName $virtualswitch[0], $virtualswitch[1] -ComputerName Hypervserver2 -WhatIf
}
altfel
{
New-VM -Name $nume -Generation $generation -MemoryStartupBytes $startupmemory -SwitchName $virtualswitch -ComputerName Hypervserver2 -WhatIf
}
}