Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

บทความนี้เกี่ยวกับการจัดการเครื่องเสมือน Hyper-V จากคอนโซล PowerShell เราจะมาดูวิธีสร้างสวิตช์เสมือนและเครื่องเสมือน เปลี่ยนการตั้งค่า VM และจัดการ VM คุณสามารถใช้คำสั่งเหล่านี้เพื่อจัดการ Hyper-V VM ของคุณหรือในสคริปต์ PowerShell ของคุณเพื่อทำงานต่างๆ โดยอัตโนมัติ

วิธีเปิดใช้งานบทบาท Hyper-V บน Windows Server และ Windows 10/11

ในการติดตั้งบทบาท Hyper-V โฮสต์ต้องมี CPU ที่เปิดใช้งาน SLAT พร้อมรองรับการจำลองเสมือน บน Windows Server คำสั่ง PowerShell ต่อไปนี้ใช้เพื่อติดตั้งบทบาท Hyper-V:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

ในรุ่นเดสก์ท็อป (Windows 10 และ 11) บทบาท Hyper-V จะได้รับการติดตั้งดังนี้:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All

ในการจัดการโฮสต์ Hyper-V โมดูล Hyper-V PowerShell จะต้องติดตั้งบนคอมพิวเตอร์ คุณสามารถแสดงรายการคำสั่งทั้งหมดที่มี (ขึ้นอยู่กับรุ่น Windows ของคุณ) ดังนี้:

Get-Command -Module hyper-v

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

ใน Windows Server 2022 มี 245 cmdlet ในโมดูล Hyper-V

หากต้องการแสดงรายการการตั้งค่าโฮสต์ Hyper-V ให้ใช้คำสั่งด้านล่าง:

Get-VMHost|fl *

วิธีแสดงเฉพาะข้อมูลเกี่ยวกับจำนวนคอร์ของ CPU และ RAM ที่มี:

Get-VMHost| select LogicalProcessorCount, MemoryCapacity

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

ใช้ Set-VMHost เพื่อเปลี่ยนการตั้งค่าโฮสต์ Hyper-V คำสั่งต่อไปนี้จะเปลี่ยนเส้นทางเริ่มต้นไปยังดิสก์เสมือนและไฟล์การกำหนดค่า VM:

Set-VMHost -VirtualMachinePath E:\VMs -VirtualHardDiskPath E:\VMs\VHD'

สร้างสวิตช์เสมือน Hyper-V ด้วย PowerShell

ก่อนอื่น สร้างสวิตช์เสมือนบนโฮสต์ Hyper-V ของคุณ เครื่องเสมือนสามารถเข้าถึงเครือข่ายผ่านสวิตช์เสมือนเท่านั้น

มาแสดงรายการอะแดปเตอร์เครือข่ายที่มีอยู่จริงบนโฮสต์ Hyper-V:

Get-NetAdapter | where {$_.status -eq "up"}

หากเซิร์ฟเวอร์ของคุณรองรับ SR-IOV (การจำลองเสมือนสำหรับอินพุต/เอาท์พุตเดี่ยว (I/O)) โปรดทราบว่าคุณควรเปิดใช้งานตัวเลือกนี้เมื่อสร้างสวิตช์ของคุณ คุณไม่สามารถเปิดใช้งาน SR-IOV สำหรับ vSwitch ที่มีอยู่ได้ เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการเปิดใช้งานการรองรับ SR-IOV สำหรับ Hyper-V VM

สร้างสวิตช์เสมือนภายนอก:

New-VMSwitch -Name "ExternalVMSwitch" -AllowManagementOS $True -NetAdapterName Ethernet0 -SwitchType External

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

สร้างเครื่องเสมือน Hyper-V โดยใช้ PowerShell

ในการสร้างเครื่องเสมือน Hyper-V ใหม่ New-VM ใช้ cmdlet ในตัวอย่างนี้ เราจะสร้าง VM รุ่นที่ 2 ใหม่ที่มี RAM 1GB และดิสก์ VHDX 10 GB

$VMName = "mun-prx2"
$VM = @{
Name = $VMName
MemoryStartupBytes = 1Gb
Generation = 2
NewVHDPath = "E:\HV\$VMName\$VMName.vhdx"
NewVHDSizeBytes = 10Gb
BootDevice = "VHD"
Path = "E:\HV\$VMName"
SwitchName = "ExternalVMSwitch"
}
New-VM @VM

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

นี่คือตัวอย่างการใช้ PowerShell เพื่อสร้างเครื่องเสมือน Windows 11 บน Hyper-V

มาดูคำสั่งที่คุณสามารถใช้เพื่อเปลี่ยนการตั้งค่า VM

วิธีเพิ่มขนาด RAM สำหรับ VM:

Get-VM -Name mun-prx2| Set-VMMemory -StartupBytes 2Gb

วิธีเปลี่ยนจำนวน vCPU:

Set-VMProcessor mun-prx2 -Count 2

เปิดใช้งานการเริ่มต้นอัตโนมัติสำหรับเครื่องเสมือน Hyper-V:

Get-VM –VMname mun-prx2 | Set-VM –AutomaticStartAction Start

หากต้องการเชื่อมต่อดิสก์เสมือนเพิ่มเติมกับ VM ให้สร้างไฟล์ vhdx ก่อน:

New-VHD -Path 'C:\VM\new-prx2-drive.vhdx' -SizeBytes 2GB

แล้วเชื่อมต่อกับ VM ของคุณ:

Add-VMHardDiskDrive -VMName mun-prx2 -Path 'C:\VM\new-prx2-drive.vhdx'

จะจัดการ Hyper-V VM ด้วย PowerShell ได้อย่างไร

วิธีแสดงรายการเครื่องเสมือนบนโฮสต์ Hyper-V:

Get-VM

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

คำสั่งส่งคืนรายการ VM พร้อมคุณสมบัติพื้นฐานบางอย่าง หากต้องการแสดงคุณสมบัติ VM ทั้งหมด ให้เรียกใช้คำสั่งด้านล่าง:

Get-VM -Name mun-dmz1 | fl *

วิธีแสดง VM ที่รันอยู่เท่านั้น:

Get-VM | where {$_.State -eq 'Running'}

ในการเริ่มเครื่องเสมือน:

Start-VM -Name mun-app01

ในการเริ่มเครื่องเสมือนที่หยุดทั้งหมด:

Get-VM | where {$_.State -eq 'Off'} | Start-VM

ปิด VM (การปิดระบบที่ถูกต้องโดยใช้ Integration Services ใน guest OS):

Stop-VM -Name mun-app01

หากต้องการปิด VM ปิด ใช้ตัวเลือก:

Stop-VM -Name mun-app01 –TurnOff

เรียนรู้วิธีหยุด Hyper-V VM ที่ไม่ตอบสนอง

เมานต์ไฟล์ ISO กับอุปกรณ์ซีดี/ดีวีดีเสมือน:

Set-VMDvdDrive -VMName mun-app01 -Path c:\iso\WinSrv2022.iso

คุณสามารถใช้ USB passthrough เพื่อเปลี่ยนเส้นทางอุปกรณ์ USB (สื่อ/ไดรฟ์) ไปยัง Hyper-V VM

หากต้องการย้ายไฟล์ VM ทั้งหมดไปยังดิสก์อื่นในทันที ให้ใช้คำสั่งด้านล่าง:

Move-VMStorage mun-app01 -DestinationStoragePath D:\VM\mun-app01

คุณสามารถขยายหรือย่อขนาดไฟล์ดิสก์เสมือนได้โดยใช้ Resize-VHD cmdlet:

Resize-VHD -Path 'C:\VM\mun-fs01.vhdx' -SizeBytes 50Gb

วิธีสร้างจุดตรวจสอบ (สแนปชอต) ของ VM:

Get-VM -Name mun-app01| Checkpoint-VM -SnapshotName "Before upgrading SAP"

แสดงรายการจุดตรวจที่มี:

Get-Vm -Name mun-app01| Get-VMCheckpoint

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

วิธีคืนค่า VM เป็นสถานะก่อนหน้าจากจุดตรวจสอบ:

Restore-VMCheckpoint -Name "Before upgrading SAP" -VMName mun-app01 -Confirm:$false

วิธีลบสแนปชอต:

Remove-VMCheckpoint -VMName mun-app01 -Name "Before upgrading SAP"

การส่งออก นำเข้า และการโคลน VM ใน Hyper-V ได้อธิบายไว้ในบทความนี้:

Export-VM -Name mun-app01 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

คุณสามารถใช้ Windows Server Backup (WSB) ในตัวเพื่อสำรองข้อมูลเครื่องเสมือน Hyper-V

วิธีรับที่อยู่ IP ของ guest OS ของเครื่องเสมือน:

Get-VM | Select -ExpandProperty NetworkAdapters | Select VMName, IPAddresses, Status

ในการเชื่อมต่อกับคอนโซลเครื่องเสมือน:

vmconnect.exe localhost mun-app01

การจัดการเครื่องเสมือน Hyper-V ด้วย PowerShell

คุณสามารถใช้ PowerShell Direct เพื่อเชื่อมต่อโดยตรงกับแขก OS ของเครื่องเสมือนผ่าน vmbus (มีให้ใน Windows Server 2016, Windows 10 และใหม่กว่า) ใช้คำสั่ง Invoke (เพื่อเรียกใช้สคริปต์) และ Enter-PSSession (เพื่อเรียกใช้เซสชัน PowerShell แบบโต้ตอบ):

Invoke-Command -VMName mun-app01 -ScriptBlock {Get-Process}
Enter-PSSession -VMName mun-app01

ในการคัดลอกไฟล์จากโฮสต์ Hyper-V ไปยังเครื่องเสมือนโดยใช้ PowerShell Direct ให้ใช้คำสั่งต่อไปนี้:

$PSSession = New-PSSession -VMName mun-app01 -Credential (Get-Credential)
Copy-Item -ToSession $PSSession -Path E:\ISO\install_image.iso -Destination D:\ISO\

คุณสามารถใช้ PowerShell เพื่อจัดการเครื่องเสมือนบนโฮสต์ Hyper-V ในเครื่องหรือจากระยะไกล (บน Windows Server Full GUI หรือโหมด Server Core บน Windows Hyper-V Server ฟรี หรือ Windows 10) ร่วมกับเครื่องมือกราฟิก เช่น Hyper-V Manager หรือ Windows Admin Center