ניהול מכונות וירטואליות Hyper-V באמצעות PowerShell


מאמר זה עוסק בניהול מחשבים וירטואליים Hyper-V ממסוף PowerShell. נבחן כיצד ליצור מתגים וירטואליים ומכונות וירטואליות, לשנות הגדרות VM ולנהל מחשבים וירטואליים. באפשרותך להשתמש בפקודות אלה כדי לנהל באופן ידני את מכונות ה- Hyper-V הווירטואליות שלך או בקבצי ה- Script של 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 ו- Windows 11), התפקיד Hyper-V מותקן באופן הבא:

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

כדי לנהל מארח Hyper-V, יש להתקין את מודול Hyper-V PowerShell במחשב. באפשרותך להציג רשימה מלאה של פקודות זמינות (הן תלויות בגירסת Windows שברשותך) באופן הבא:

Get-Command -Module hyper-v

ב- Windows Server 2022, ישנם 245 רכיבי cmdlet זמינים במודול Hyper-V.

כדי להציג רשימה של הגדרות מארח Hyper-V, השתמש בפקודה הבאה:

Get-VMHost|fl *

כדי להציג רק את המידע אודות מספר ליבות ה- CPU וה- RAM הזמינים:

Get-VMHost| select LogicalProcessorCount, MemoryCapacity

השתמש בלחצן

Set-VMHost

כדי לשנות הגדרות מארח Hyper-V. הפקודה הבאה תשנה את נתיבי ברירת המחדל לדיסקים וירטואליים ולקבצי תצורה של מחשבים וירטואליים:

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.

צור מתג וירטואלי חיצוני:

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

יצירת מחשב וירטואלי 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

הנה דוגמה לשימוש ב- 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 VMs עם PowerShell?

כדי להציג רשימה של מחשבים וירטואליים במחשב מארח Hyper-V:

Get-VM

הפקודה מחזירה את רשימת המחשבים הווירטואליים עם כמה מאפיינים בסיסיים. כדי להציג את כל המאפיינים של VM, הפעל את הפקודה הבאה:

Get-VM -Name mun-dmz1 | fl *

כדי להציג מחשבים וירטואליים פועלים בלבד:

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

כדי להפעיל מחשב וירטואלי:

Start-VM -Name mun-app01

כדי להפעיל את כל המחשבים הווירטואליים שהופסקו:

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

כבה את המחשב הווירטואלי (כיבוי נכון באמצעות שירותי אינטגרציה במערכת ההפעלה האורחת):

Stop-VM -Name mun-app01

כדי לכבות את המחשב הווירטואלי, נעשה שימוש באפשרות TurnOff:

Stop-VM -Name mun-app01 -TurnOff

למד כיצד לעצור מחשב וירטואלי Hyper-V שאינו מגיב.

טען את קובץ ה- ISO להתקן CD/DVD וירטואלי:

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

באפשרותך להשתמש במעבר USB כדי לנתב מחדש את התקן ה- USB (מדיה/כונן) ל- Hyper-V 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

כדי לשחזר 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 (WSB) כדי לגבות מחשבים וירטואליים 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 (להפעלת קבצי Script) וב- 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 או Server Core, בשרת Windows Hyper-V ללא תשלום או Windows 10) יחד עם כלים גרפיים כגון מסוף Hyper-V Manager או מרכז הניהול של Windows.