מודול PowerShell של Hyper-V: ביצוע יותר משימות

אם אתה משתמש בפלטפורמת הווירטואליזציה Hyper-V של Microsoft להרצת מכונות וירטואליות, ייתכן ואתה מכיר את Hyper-V Manager. אך האם אתה יודע שאפשר לבצע יותר בפחות זמן עם מודול הפווֹרְשֵׁל PowerShell של Hyper-V?

במדריך זה, תלמד איך לנהל מכונות וירטואליות של Hyper-V באמצעות PowerShell, כולל יצירה, הסרה, ותקיפה על קצת נושאים של צילומי מסך של מכונות וירטואליות!

דרישות מוקדמות

למדריך זה, תצטרך את הרשימה הבאה:

  • A Windows client to connect to a remote Hyper-V host. This tutorial uses Windows 10 Pro.
  • A Hyper-V host with PowerShell Remoting enabled. The tutorial’s Hyper-V host is named HYPER and is in a workgroup but an Active-Directory joined client and host will work as well.
  • A user account on the Hyper-V host in the local administrators group or in the Hyper-V Administrators group. This tutorial will use an account called localadmin.

התחברות למארח Hyper-V רחוק

כדי לעבוד עם Hyper-V באמצעות PowerShell, עליך להיות מסוגל לתקשר עם מארח Hyper-V בכל דרך שהיא. אתה יכול לעשות זאת מקומית על ידי הפעלת פקודות הפווֹרְשֵׁל של Hyper-V וספק את שם המארח Hyper-V, או שאתה יכול להשתמש בפווֹרְשֵׁל רימוטינג של PowerShell להתחברות למארח Hyper-V ישירות.

במדריך זה, תקיים חיבור יציב למארח Hyper-V ותפעיל את הפקודות ישירות על מארח Hyper-V עצמו.

1. פתח את PowerShell על המחשב המקומי שלך.

2. הרץ את הפקודה Enter-PSSession וספק את שם המחשב של המארח Hyper-V המרוחק שלך לפרמטר ComputerName. פעולה זו תיצור מהלך פעולה אינטראקטיבי ותאפשר לך להריץ פקודות באופן אינטראקטיבי על המארח Hyper-V המרוחק.

Enter-PSSession -ComputerName HYPER -Credential (Get-Credential)

אם הלקוח שלך והמארח של Hyper-V הם חלק מאותו תחום של Active Directory, אין צורך להשתמש בפרמטר Credential.

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

כעת אתה מוכן להתחיל להריץ פקודות!

יצירת מכונות Hyper-V בעזרת PowerShell

הננו מניחים שאתה מחובר כעת למארח Hyper-V שלך באמצעות PowerShell Remoting, בוא נתחיל להריץ פקודות על ידי יצירת מכונת Hyper-V.

יצירת מכונה פשוטה

כאשר אתה במסגרת ההתחברות שלך למארח המרוחק של Hyper-V:

הרץ את הפקודה New-VM כדי ליצור מכונה חדשה. בעת יצירת מכונה עם הפקודה New-VM, יש לך אפשרויות שונות לבחירה באופן היצירה שלה.

1. בדוגמה הבאה, ההדרכה יוצרת מכונה עם:

  • A name of MyVM (HYPER)
  • 512 מגה-בתים של זכרון (MemoryStartupBytes)
New-VM -Name "HYPER" -MemoryStartupBytes 512MB
New VM named “HYPER”

יצירת מכונה בהתבסס על מאפייני מכונה אחרת

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

1. הרץ את Get-VM כדי לשאול את התכונות של מכונה וירטואלית קיימת והקצה את הפלט למשתנה כפי שמוצג למטה.

$VMold = Get-VM "HYPER_old"

2. הרץ את פקודת ה-cmdlet Get-VMMemory על ידי ספק את שם המכונה הווירטואלית לאיסוף התכונות ממנה (במקרה זה, זיכרון), והקצה את ערך הזיכרון למשתנה.

$memory = (Get-VMMemory -VMName $VMold.name).Startup

3. לאחר מכן, צור מכונה וירטואלית חדשה עם פקודת ה-cmdlet New-VM על ידי ספק את ה-Name, דור ה-VM (Generation) באמצעות התכונה Generation מהמכונה האחרת, וכמות הזיכרון מהערך שנרכש מהמכונה האחרת.

New-VM -Name "newVM" -Generation $VMold.Generation -MemoryStartupBytes $memory
New VM created from Old existing VM

רשימת מכונות וירטואליות קיימות באמצעות PowerShell

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

1. הרץ את פקודת ה-cmdlet Get-VM לבדה. כאשר אתה מפעיל את הפקודה ללא פרמטרים, Get-VM שואל את מארח ה-Hyper-V על כל המכונות וירטואליות הקיימות. Get-VM

Get-VM
Output of Get-VM run with no Parameters

2. אולי תרצה לחפש רק אחת מהמכונות וירטואליות. במקרה כזה, השתמש בפרמטר -Name. הפקודה למטה מחפשת ב-Hyper-V את המכונה וירטואלית שנוצרה קודם בשם HYPER_old. Get-VM -Name HYPER_old

Get-VM -Name HYPER_old
Output of Get-VM run with the -Name Parameter

באופן כללי, אולי תצטרך למצוא את כל המכונות וירטואליות שנמצאות במצב מסוים. אין בעיה. כדי לעשות זאת, הרץ את Get-VM, ששואל את כל המכונות וירטואליות אך מפנה את הפלט ל-pipe של Where-Object cmdlet.

בדוגמה למטה, הסימן שובץ '|' מגביל את הפלט של Get-VM לאובייקטים של מכונות וירטואליות עם State של Running. Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}

Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}
Output of Get-VM filtering out the VM with the state of Running

התחלה ועצירת מכונות וירטואליות

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

בפקודות PowerShell של השרת המרוחק של Hyper-V:

1. הפעל את הפקודה Start-VM ותן לה את שם (Name) של המכונה הווירטואלית שנוצרה לך קודם בפרמטר -Name

Start-VM -Name NewVM
The Start-VM command starting the VM named HYPER_old

עכשיו שהמכונה הווירטואלית הופעלה, עצור אותה באמצעות הפקודה Stop-VM וספק את שם המכונה בפרמטר Name.

Stop-VM -Name HYPER_old

כשאתה מפעיל את הפקודה למעלה, תראה את המכונה הווירטואלית נכבית כפי שמוצג בצילום המסך למטה;

Stop-VM stopping the HYPER_old VM

שינוי במכונות וירטואליות של Hyper-V

מכונות וירטואליות לא תמיד נשמרות כפי שהן. אולי יש צורך להגדיל משאבי ה- CPU, או שהם תדירות נחלשות בזכרון. במקרה כזה, הפקודה Set-VM היא ידידך.

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

הריץ את הפקודה Set-VM כדי לכבות באופן אוטומטי את ה-VM של HYPER_old שפועלת כעת. השתמש בפרמטר Name כדי לציין את ה-VM שברצונך להגדיר וציין את Shutdown כערך עבור הפרמטר AutomaticStopAction כדי לוודא שה-VM תיכבה באופן אוטומטי בצורה תקינה כאשר המארח של Hyper-V כבוי.

Set-VM -Name HYPER_old -AutomaticStopAction Shutdown

שמירת VMs של Hyper-V

בשיחת הפווערשל של מארח ה- Hyper-V המרוחק, עשויים להיות צורך לשמור את ה- VM שאתה יוצר כדי לשמור על מצב הזיכרון של ה- VM לשימוש מאוחר יותר. כדי לעשות זאת, השתמש בפקודת ה- Save-VM עם הפרמטר Name שמציין את שם ה- VM שברצונך לשמור עליו.

שים לב כי, ה- VM שברצונך לשמור חייבת להיות במצב ריצה.

Save-VM -Name HYPER_old
Save-VM cmdlet saving HYPER_old VM state.

ניהול נקודות בדיקה של VMs של Hyper-V

אם יש צורך לשמור את המצב הקיים של VM לפני לעשות שינויים או להחזיר שינויים של VM, עליך ללמוד על נקודות בדיקה. נקודות בדיקה הן אופן נוח לשמור מהר על מצב הדיסק והזיכרון של כל VM של Hyper-V.

בעת הפעלתך על מארח ה- Hyper-V שלך, הפעל את פקודת ה- Checkpoint-VM, וציין את שם ה- VM לשמירה ושם עבור הנקודה.

שם הפרמטר, SnapshotName עדיין מתייחס למונחים הישנים שנעשה בהם שימוש ב- Hyper-V 2012. נקודת צילום היא אותו הדבר כמו נקודת בדיקה.

Checkpoint-VM -Name HYPER_old -SnapshotName MyVMSnapshot
Using Checkpoint-VM to create a Snapshot of HYPER_old VM called MyVMSnapshot

כאשר יש לך נקודת בקרה שנוצרה, באפשרותך להשתמש ב־Get-VMSnapshot cmdlet כדי לאחזר את כל הנקודות המאוחסנות במארח ה-Hyper-V. תוכל לראות מתחת שה-VM HYPER_old יש לו שלוש נקודות בקרה.

Get-VMSnapshot -VMName HYPER_old
Retrieves all the Snapshots stored for HYPER_old VM

מסקנה

אם עברת דרך כל הדפסים במדריך זה, אתה בדרך הנכונה לניהול של מכונות וירטואליות של Hyper-V באמצעות PowerShell. כעת אמור לך יש היכולת לנהל 1, 10, או אפילו 100 מכונות וירטואליות!

עם אילו משימות אתה חושב שאתה יכול לאוטומטז בעזרת PowerShell ו-Hyper-V?

Source:
https://adamtheautomator.com/hyper-v-powershell/