Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

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

บทความนี้เกี่ยวกับการจัดการเครื่องเสมือน Hyper-V จากคอนโซล PowerShell เราจะมาดูวิธีสร้างสวิตช์เสมือนและเครื่องเสมือน เปลี่ยนการตั้งค่า VM และจัดการ VMs คุณสามารถใช้คำสั่งเหล่านี้เพื่อจัดการ VM Hyper-V ของคุณด้วยตนเองหรือในสคริปต์ 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 module ต้องติดตั้งบนคอมพิวเตอร์ คุณสามารถแสดงรายการคำสั่งที่พร้อมใช้งานทั้งหมด (ขึ้นอยู่กับเวอร์ชัน Windows ของคุณ) ได้ดังนี้:

Get-Command -Module hyper-v

ใน Windows Server 2022 มี cmdlet 245 ตัวพร้อมใช้งานในโมดูล Hyper-V

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

Get-VMHost|fl *

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

Get-VMHost| select LogicalProcessorCount, MemoryCapacity

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

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

สร้าง Hyper-V Virtual Switch ด้วย PowerShell

ก่อนอื่น ให้สร้างสวิตช์เสมือนบนโฮสต์ Hyper-V ของคุณ เครื่องเสมือนสามารถเข้าถึงเครือข่ายได้เฉพาะผ่านสวิตช์เสมือน

มาแสดงรายการแอดAPTER เครือข่ายทางกายภาพที่พร้อมใช้งานบนโฮสต์ Hyper-V:

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

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

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

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

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

เพื่อสร้างเครื่องเสมือน Hyper-V ใหม่ ใช้คำสั่ง New-VM ในตัวอย่างนี้ เราจะสร้าง VM Generation 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

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

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

เพื่อเพิ่มขนาด RAM สำหรับ VM:

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

เพื่อเปลี่ยนจำนวน vCPUs:

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 VMs ด้วย PowerShell

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

Get-VM

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

Get-VM -Name mun-dmz1 | fl *

เพื่อแสดง VM ที่กำลังทำงานเท่านั้น:

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

เพื่อเริ่มต้นเครื่องเสมือน:

Start-VM -Name mun-app01

เพื่อเริ่มต้น VM ที่หยุดทำงานทั้งหมด:

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

ปิดเครื่อง VM (ปิดอย่างถูกต้องโดยใช้ Integration Services ในระบบปฏิบัติการผู้เยี่ยมชม):

Stop-VM -Name mun-app01

เพื่อปิดเครื่อง VM แบบบังคับ ใช้ตัวเลือก TurnOff:

Stop-VM -Name mun-app01 –TurnOff

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

แม้ตไฟล์ ISO เข้าอุปกรณ์ CD/DVD เสมือน:

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

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

เพื่อย้ายไฟล์ VM ทั้งหมดไปยังดิสก์อื่นบนระหว่างทำงาน (on the fly) ใช้คำสั่งด้านล่าง:

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

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

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

เพื่อสร้างเช็คพอยต์ (snapshot) ของ VM:

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

เพื่อแสดงรายการเช็คพอยต์ที่พร้อมใช้งาน:

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

เพื่อกู้คืน VM ไปยังสถานะก่อนหน้าจากเช็คพอยต์:

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

เพื่อลบ snapshot:

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) แบบbuiltin เพื่อสำรองข้อมูลเครื่องเสมือน Hyper-V

เพื่อรับที่อยู่ IP ของระบบปฏิบัติการผู้เยี่ยมชมของเครื่องเสมือน:

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

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

vmconnect.exe localhost mun-app01

คุณสามารถใช้ PowerShell Direct เพื่อเชื่อมต่อโดยตรงกับระบบปฏิบัติการผู้เยี่ยมชมของเครื่องเสมือนผ่าน vmbus (พร้อมใช้งานใน Windows Server 2016, Windows 10 และใหม่กว่า) ใช้ Invoke-Command (เพื่อรันสคริปต์) และ 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