האם פעם חלמת להפעיל פקודות PowerShell על מכונה מרוחקת מנוחת העבודה שלך? עם סיוע מרחוק של PowerShell, זה אפשרי. עם PowerShell מרחוק, תוכל להפעיל פקודות וסקריפטים על מספר מכונות מרוחקות באופן יעיל.
נשמע מעניין? המשך לקרוא כדי ללמוד כיצד לשלוט על אלה המכונות הרחוקות בדרך של PowerShell.
דרישות מוקדמות
המדר הזה יהיה הדגמה מעשית. אם ברצונך להתעקש, הקפד לקנות לך לפחות שלוש מחשבים עם PowerShell 7. האחד יהיה המחשב שלך לניהול, והשניים הנותרים יהיו המכונות הרחוקות.
המדר ישתמש במחשבים הבאים.
- A Windows 10 PC with PowerShell 7 installed as the management computer. You will launch remote commands from this machine.
- A Windows 10 PC with PowerShell 7 installed. This machine will be the endpoint for remote PowerShell over WinRM.
- A user account on the remote Windows machine with local administrator rights. This tutorial uses a user account called ma.
- מחשב Linux עם SSHD מאופשר כדי לשרת כנקודת קצה של PowerShell רחוקה מעל SSH. במדריך זה משמש Fedora 35.
- חשבון משתמש כדי לבצע פקודות רחוקות על מחשב ה-Linux. החשבון צריך להיות עם גישת sudo וגישה SSH. במדריך זה משמש חשבון בשם test. צור חשבון משתמש בנקודה זו אם אין לך חשבון במחשב ה-Linux שלך
אפשרות להפעיל את PowerShell הרחוק בווינדוס מעל WinRM
כאשר אתה מתקין את PowerShell 7, קיימת אפשרות להפעיל גישה ל-PowerShell רחוק, ואולי הפעלת אותה אז. אך, כדי לוודא, עקוב אחר השלבים הבאים כדי להפעיל PowerShell רחוק.
1. התחבר למחשב Windows 10 רחוק.
2. פתח את PowerShell כמנהל.
3. הרץ את הפקודה הבאה כדי לאפשר PowerShell רחוק.
הפקודה מבצעת מספר שינויים בתצורה, שתוכל לראות בקונסול.

הפעלת PowerShell מרחוק על Linux דרך SSH
WinRM היא בלעדית ל-Windows, וזו אומרת שאין אפשרות להפעיל PowerShell מרחוק על Linux דרך זו. במקום זאת, ניתן להפעיל PowerShell מרחוק על Linux דרך SSH. בהנחה שכבר התקנת PowerShell, עקוב אחרי השלבים הבאים.
1. התחבר למערכת Linux מרחוק ופתח סשן בטרמינל.
2. פתח את קובץ התצורה של שרת ה-SSH בעורך טקסט. השתמש בעורך טקסט שבחרת, כמו Gedit, Sublime, או Nano. בדוגמה זו אנו משתמשים ב-Gedit.
3. לאחר מכן, הוסף את השורה הבאה לקובץ. שורה זו יוצרת subsystem של SSH שמכיל תהליך של PowerShell.

4. סגור את העורך.
5. לבסוף, הפעל מחדש את שרת ה-SSH על ידי הפעלת הפקודה הבאה.
הוספת מארחים אמינים של PowerShell מרחוק במחשב המקומי
בנקודה זו, המחשב המרוחק שלך מוכן לקבל פקודות. אך, המחשב הניהולי שלך עשוי לסרב להתחבר למארחי PowerShell מרחוק אם הם אינם ברשימת המארחים האמינים. כדי למנוע בעיות של מרחום אפשריות, עליך להוסיף את המארחים המרוחקים לרשימת המארחים האמינים שלך.
פתח את PowerShell כמנהל במחשב הניהול שלך.
הרץ את הפקודה winrm
שבהמשך. פקודה זו מוסיפה את המחשבים המרוחקים שלך, הראשון ב-Windows (192.168.8.107
) והשני ב-Linux (192.168.8.171
), לרשימת המחשבים האמינים של המחשב שלך.

הרצת פקודות על מחשבים מרוחקים
עם כל הרכיבים במקום, תבצע פקודות על המחשב המרוחק בסעיף זה.
1. פתח חלון חדש של PowerShell במחשב הניהול שלך.
2. כעת, הרץ את הפקודה הבאה של Invoke-Command
כדי לרשום את חמישת השירותים הראשונים במחשב המרוחק כמשתמש ma
. הפקודה להרצה מופיעה בתוך הסוגריים המסולסלות של מתג ה-ScriptBlock
, כפי שמוצג למטה.

3. כדי לבצע את אותו הדבר עם מחשב מרוחק ב-Linux, הרץ את הפקודה הבאה במקום. שים לב ש--HostName
מחליף את -ComputerName
, ו--UserName
מחליף את -ComputerName
. משתנים אלו מציינים ל-cmdlet של Invoke-Command
שהיעד הוא מארח SSH.

ביצוע סקריפטים על מחשבים מרוחקים
באפשרותך גם להריץ קובץ סקריפט PowerShell על מחשב מרוחק באמצעות cmdlet של Invoke-Command
. אך במקום לציין את הפרמטר -ScriptBlock
, יש לציין את הפרמטר -FilePath
ולאחריו את נתיב הקובץ המקומי של הסקריפט.
1. תיצור קובץ סקריפט PowerShell בשם nametime.ps1
במחשב המקומי שלך.
2. פתח את הסקריפט בעורך הסקריפט המועדף עליך והוסף את הקוד הבא. שמור את הקובץ לאחר מכן.

3. בצע את הפקודה Invoke-command
עם הפרמטר -FilePath
. הפרמטר -FilePath
צריך להפנות לקובץ התסריט. בדוגמה זו, קובץ התסריט נמצא באותו ספריית עבודה.

ניהול מחשב מרוחק באופן אינטראקטיבי
בסעיף הקודם, ראית איך להריץ פקודות יחידות על מחשב מרוחק. בסעיף זה, תלמד לפתוח מהלך אינטראקטיבי, כך שתוכל להריץ מספר פקודות על המחשב הרחוק כאילו הם היו מקומיים.
1. בצע את הפקודה Enter-PSSession
כדי להתחיל מהלך רחוק על המכשיר בכתובת 192.168.8.107
כמשתמש ma
.
הכנס את סיסמת החשבון המשתמש הרחוק, ma, בעת הבקשה כמופיע למטה.

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

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

4. בצע את הפקודה Exit-PSSession
למטה כדי לצאת מהמהלך לאחר שסיימת לנהל את המחשב הרחוק.
בעת היציאה, תחזור למפתח מקומי, כמו שמופיע בתמונה למטה.

ניתן לנתק ולחבר מחדש ישיבות PowerShell רחוקות
. אפשר לאחסן ישיבה בצורה עמידה כאלטרנטיבה לישיבות אינטראקטיביות או פקודות חד-פעמיות. אחסון של ישיבה מאפשר לך להחליף בין ישיבות מבלי לאבד הקשר. במקטע זה, תלמד ליצור ולנהל ישיבות עמידות
.
1. הרץ את פקודת ה-\code{New-PSSession} כדי ליצור ישיבה במחשב הרחוק, \code{192.168.8.107}, כמשתמש \code{ma} (\code{-Credential}). שמור את הישיבה במשתנה, \code{\$var}, כך:
2. בצע את המשתנה, \code{\$var}, כדי לראות את תוכנו כך:
. כפי שמוצג למטה, תראה אובייקט ישיבה עם RemoteMachine ComputerType ו־State המוגדרים ל־Opened

.
3. הרץ את פקודת ה-\code{Enter-PSSession} כדי להיכנס לישיבה השמורה ב-\code{\$var}
. אם הכל בסדר, הפרומפט ישתנה לפרומפט רחוק ללא פלט נוסף, כפי שמוצג למטה

.
4. צור משתנה, \code{\$rem1}, בתוך הישיבה. השתמש בשם משתנה ומחרוזת זיהוי שתבחר. תשתמש במשתנה זה מאוחר יותר כדי לקבוע האם התחברת לאותה ישיבה
.
5. הרץ את הפקודה למטה כדי לצאת מהישיבה של PowerShell הרחוקה

.
6. הקמת ישיבה של PowerShell הרחוקה מחדש
.
7. בצע את המשתנה \code{\$rem1} בפקודת הישיבה הרחוקה, כפי שמוצג למטה, כדי לראות את ערכו.
עליך לראות את אותו הערך שהגדרת לפני יציאת ההפעלה המרוחקת של PowerShell, מאשר שחברת לאותו ההפעלה המרוחקת שוב.

8. הפעל את הפקודה Exit-PSSession
כדי לצאת מההפעלה שוב כך:
9. לבסוף, בצע את Invoke-Command
עם המתג session
מוגדר ל $var
כדי להציג את שם המארח המרוחק באותה ההפעלה המרוחקת. שיטה זו היא דרך אלטרנטיבית להרצת פקודות באותה ההפעלה בלי לחבר, לנתק ולחבר מחדש להפעלה יחידה.

10. הפעל את הפקודה Remove-PSSession
כדי להסיר את ההפעלה שמאוחסנת במשתנה $var
לגמרי.
מסקנה
מזל טוב! על ידי הגעתך לסיום המדריך הזה, למדת כיצד לנהל מערכת Windows או Linux באמצעות PowerShell מרוחק. המדריך הזה מיועד להחית את רגלייך. למה לא לקפוץ לתוך PowerShell על Linux יותר עמוק בהפעלה מרוחקת?