ניהול מכונות וירטואליות 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.






