ฉันกำลังทำงานกับสคริปต์ Powershell เพื่อสร้างเครื่องเสมือนใหม่ซึ่งเป็นส่วนหนึ่งของการย้ายข้อมูลระหว่างเซิร์ฟเวอร์ Hyper-V ที่ใช้ Hyper-V Server 2012R2 และเซิร์ฟเวอร์ Hyper-V ใหม่ที่ใช้ Hyper-V Server 2019
สำหรับเครื่องเสมือนที่มีสวิตช์เสมือนตัวเดียวที่กำหนดให้กับพวกเขา สคริปต์นี้ทำงานได้ดี อย่างไรก็ตาม ฉันมีเครื่องเสมือนบางเครื่องที่มีสวิตช์สองตัว สำหรับ VM เหล่านั้น ฉันได้รับข้อความนี้: ไม่สามารถแปลง 'System.Object[]' เป็นประเภท 'System.String' ที่พารามิเตอร์ต้องการ
.
ฉันจะเพิ่มสวิตช์ที่สองได้อย่างไร
นำเข้าโมดูล - ชื่อ Hyper-V - รุ่นที่จำเป็น 1.1
$currentvms = Get-VM -ComputerName Hypervserver
foreach ($currentvm ใน $currentvms)
{
$ชื่อ = ($currentvm).ชื่อ
$generation = ($currentvm).Generation
$startupmemory = ($currentvm).MemoryStartup
$virtualswitch = (Get-VMNetworkAdapter -VMName $name -ComputerName Hypervserver).SwitchName
$virtualswitchcount = (การวัดวัตถุ -InputObject $virtualswitch).Count
ถ้า ($ virtualswitchcount -ne 1)
{
New-VM - ชื่อ $name - รุ่น $ generation -MemoryStartupBytes $ startupmemory -SwitchName $virtualswitch[0],$virtualswitch[1] -ComputerName Hypervserver2 -WhatIf
}
อื่น
{
New-VM -ชื่อ $name -Generation $ generation -MemoryStartupBytes $startupmemory -SwitchName $virtualswitch -ComputerName Hypervserver2 -WhatIf
}
}