אף על פי שב-Windows, PSRemoting מופעל כברירת מחדל, זה לא תמיד מופעל. אם יש לך צורך לבדוק אם PSRemoting מופעל או להפעיל אותו ב-Windows, הדרכון הזה בשבילך.
הדרכון הזה ילמד אותך דרכים שונות להפעיל את PSRemoting במחשבים מקומיים ומרוחקים הרצים גם ב-Windows.
בואו נתחיל!
הפעלת PSRemoting עושה הרבה
אם אתה לראשונה מתמקד ב-PowerShell Remoting, ייתכן שתחשוב שהפעלה היא פשוטה וחד משמעית. אולי ראית כמה התייחסויות ל-cmdlet PowerShell של Enable-PSRemoting
וחשבת שכשתריץ את זה, זה פשוט מדליף משהו. אתה טועה.
כשאתה שומע על הפעלת PSRemoting, יש הרבה משימות שחייבות להתרחש ברקע כדי שזה יקרה. מכיוון ש-PowerShell Remoting תלוי במערכות אחרות להפעלה תקינה, יש לו כמה תלות.
לדוגמה, ב-Windows, כשאתה מריץ את ה-cmdlet Enable-PSRemoting
בלעדיו פרמטרים, הוא מבצע את כל המשימות הבאות:
- שירות WinRM מתחיל ומוגדר להתחיל באופן אוטומטי.
- יוצר קולטן על פתחי ה- WinRM המוגדרים כברירת מחדל – 5985 לתעבורת HTTP.
- מפעיל חריצי חולמה עבור WS-Management.
- מרשה את הקבוצות של תצורת ההפעלה של PowerShell עם WS-Management.
- מפעיל את תצורות ההפעלה של PowerShell.
- הגדרות ישיבות מרוחקות של PowerShell כך שתאפשר גישה מרחוק.
- אתחל שוב את שרת WinRM כדי ליישם את כל השינויים.
אתה שמח שאין לך לעשות את כל זה באופן ידני? למה להזכיר זאת אם פקודת ה-Enable-PSRemoting
עושה את זה לך? מכיוון שישנם פעמים בהן משהו לא עובד ונדרש לאתר את הבעיה.
הגדרות ברירת המחדל של PSRemoting ב-Windows
מאז שנוצר PSRemoting ב-Windows, הוא מופעל כברירת מחדל אך לא באופן אוניברסלי וגם לא לכל גרסת מערכת ההפעלה של Windows.
בכל מערכות ההפעלה של Windows ללקוח, PSRemoting תמיד מושבת.
בשרתי Windows, PSRemoting מופעל לעיתים אך לא תמיד, תלוי בפרופיל הרשת שבו פועלת מערכת ההפעלה של Windows. להלן טבלה מועילה שתעזור לך לקבוע האם PSRemoting מופעל או לא במערכת ההפעלה של Windows שלך.
Operating System | Network Profile | PSRemoting |
Windows Server 2008 R2 | Domain/Private | Disabled |
Windows Server 2008 R2 | Public | Disabled |
Windows Server 2012 & Newer | Domain/Private | Enabled |
Windows Server 2012 & Newer | Public | Enabled within the same subnet |
לעומת זאת, ב-Linux זה קל. PSRemoting אפילו לא קיים! אפילו PowerShell אינו מותקן כברירת מחדל. אם ברצונך להפעיל PSRemoting ב-Linux, עליך להגדיר אותו.
די דיבור, בוא נראה לך איך להתחיל להשתמש באמת ב-PSRemoting!
דרישות מוקדמות
אם אתה מתכנן לעקוב אחר הדוגמאות בסעיף זה, אנא וודא שיש לך את הדברים הבאים:
- A Windows Server 2008 R2 or later machine
- A local or Active Directory domain user in the local administrators group
הפעלת PSRemoting באופן מקומי
אחת הדרכים הקלות ביותר להפעיל את PSRemoting היא להשתמש בפקודת הבנויה Enable-PSRemoting
. פקודה זו, כפי שלמדתם לעיל, היא קיצור דרך להגדרת מגוון שירותים שונים כדי להתאים את המערכת ל- PowerShell Remoting.
שימוש ב- Enable-PSRemoting
Cmdlet
כאשר אתה מפעיל את הפקודה הזו ללא פרמטרים, היא תבצע פעולות שונות בהתאם למערכת ההפעלה שבה אתה פועל. בכל מערכת הפעלה של Windows נוכל לראות את אותן השלבים הבסיסיים. ה- PSRemoting מופעל, האזנן WinRM HTTP נוצרת, וכללי האש מופעלים. ההבדל העיקרי הוא בטיפול ברשתות ציבוריות.
על מערכת ההפעלה של שרת, כמו Windows Server 2019, כללי האש מאפשרים חיבורים מרחוק ממכשירים אחרים באותה הרשת. במערכת ההפעלה של הלקוח, כמו Windows 10, תקבל שגיאה המציינה כי הינך ברשת ציבורית.
אם אינך בטוח בקרה מה הפרופיל של הרשת בו מריצה Windows, הריץ את הפקודה הבאה:
עליך להשתמש רק ב- PSRemoting ברשת מהימנה מאחר ובעצם הוא מפעיל שרת אינטרנט להאזנה לחיבורים מרחוק.

אם אתה מסכים להריץ את PSRemoting בפרופיל רשת שונה מאשר פרטי או דומיין, אתה יכול לדלג על בדיקת פרופיל הרשת על ידי שימוש בפרמטר SkipNetworkProfileCheck
. שימוש בפרמטר זה יפתח את יציאות WinRM בכללי האש של Windows.
שימוש בפרמטר
SkipNetworkProfileCheck
יפתח את כללי האש של Windows עבור פקודות רימוט בפרופיל הרשת הנוכחי שלך אך יאפשר חיבורים מרחוק רק ממכונות באותה תת-רשת.
שני הפרמטרים שניתן להשתמש בהם יחד עם Enable-PSRemoting
עובדים בשותפות. אלו הם הפרמטרים -Force
ו־-Confirm
. תוכל להשתמש ב־-Force
כדי לדלג על כל ההודעות שהפקודה Enable-PSRemoting
תן לך בדרך כלל. תוכל גם להשתמש ב־-Confirm:$false
כדי לקבל את אותו תוצאה.
בשימוש בפקודה winrm quickconfig
הפקודה winrm quickconfig
הייתה דרך פופולרית להגדיר את PSRemoting לפני שנוצרה הפקודה Enable-PSRemoting
, אך היא עדיין יכולה להיות שימושית. אם תריץ רק את winrm quickconfig
, היא תאפשר את שירות WinRM, תיצור קורא HTTP, ותפעיל את כללי הגנה בקירוב. כל אלו הם דברים שכבר נעשים על ידי Enable-PSRemoting
, אך היא אינה מגדירה את המחשב כך שיהיה יכול לטפל בסשנים של PowerShell מרחוק.
במקום שבו הפקודות winrm
מתאימות היא בהגדרת קוראי HTTPS. בזמן שניתן לעשות זאת ידנית, אם יש לך תעוזה מתאימה לקורא HTTPS, תוכל פשוט להפעיל את winrm quickconfig -transport:https
והקורא וכללי הגנה של HTTPS יוגדרו.
הפעלת PSRemoting מרחוק
עד כה, למדת שניתן להפעיל את PSRemoting על ידי הפעלת פקודה במחשב מקומי. זה מוביל אותנו לסיטואציה דומה לבעיה "הכרח וביצוי". PSRemoting מאפשרת לך להפעיל פקודות במחשבים מרוחקים אך איך נפעיל פקודה מרחוק בלעדי PSRemoting?
יש שלוש דרכים: אמצעי השירות PSexec, WMI ו־Group Policy.
בשימוש ב-Psexec
PSExec הוא יישום מועיל שמאפשר לך להריץ פקודות מרחוק כמו ש-PSRemoting עושה. אך, PSexec משתמש בשיטת תקשורת שונה שאתה יכול להשתמש בה לטובתך!
עם PSexec, אתה יכול להריץ Enable-PSRemoting
מהמחשב המקומי שלך באמצעות הפקודה הבאה. הפקודה למטה קוראת ל-psexec ומתחברת לשרת ServerB. לאחר מכן היא מתחילה תהליך PowerShell ומבצעת את הפקודה Enable-PSRemoting
עם המתג -Force
כדי לדלג על הציונים הרגילים.
אפשרות זו טובה למקרים חד-פעמיים בהם יש צורך להפעיל את PSRemoting על מערכת מרוחקת, אך היא לא מושלמת להפעלת PSRemoting על הרבה מערכות ודורשת ממך להוריד את psexec.
בשימוש ב-WMI
לפעמים PSexec לא יעבוד. הרבה תוכנות אבטחה חוסמות את psexec אבל אל תדאג, יש לך גם WMI!
בשימוש ב-PowerShell ובפקודת ה-cmdlet Invoke-CimMethod
. באמצעות פקודת ה-cmdlet Invoke-CimMethod
, אתה יכול להוריש ל-PowerShell להתחבר למחשב המרוחק דרך DCOM ולהוריש שיטות.
מזל טוב עליך, WMI כוללת מחלקת Win32_Process
שמאפשרת לך להוריש תהליכים. על ידי הוראת שיטת Create
נגד ה-Win32_Process
, Invoke-CimMethod
מתחבר למחשב המרוחק, משיב את PowerShell ומריץ את Enable-PSRemoting
כמצוגם למטה.
הדוגמה למטה יוצרת טבלת גיבוב עבור חיבור ההפעלה בו מצויין שם השרת, פרטי הזיהוי והפרוטוקול. לאחר מכן, בטבלת הגיבוב הבאה, מוגדרים הפרמטרים עבור Invoke-CimMethod
. לאחר הרצת הפקודות אלה, מתווצר סשן CIM על פי פרוטוקול DCOM שמפעיל תהליך PowerShell המפעיל בתורו את הפקודה Enable-PSRemoting
.
במקרה שאתה משתמש בזה בסביבת דומיין והמשתמש שמבצע את הפקודות מספק הרשאות מנהל על השרת היעד, ניתן להשמיט את השורה
Credential = Get-Credential
.
שימוש במדיניות קבוצה
האפשרות האחרונה, ואולי הטובה ביותר לאפשר WinRM במקום רחב של מחשבים היא דרך מדיניות קבוצה. כאשר משתמשים במדיניות קבוצה, ניתן ליצור אובייקט מדיניות קבוצה אחת ולהחיל את המדיניות הזו על אלפי מחשבים יחד תוך כדי.
כל המחשבים חייבים להיות בדומיין Active Directory כדי להשתמש במדיניות קבוצה.
כדי להשתמש במדיניות קבוצה כדי לאפשר WinRM במקביל על מספר רב של מחשבים, עליך להגדיר שלושה פריטי הגדרות שונים:
- אפשר את שירות WinRM.
- פתח את יצירת האש הגומלין של Windows עבור WinRM.
- יצירת מאזין WinRM ואפשר חיבורים אליו.
התחברות RDP ראשית לשרת ברשת או, טוב יותר, התקן את חבילת כלי הניהול הרחוק של שרתים (RSAT) בעבודת המחשב שהוצטרף לדומיין. עכשיו יש לך את תוכנת מנהל מדיניות הקבוצה (GPMC) זמינה.
הפעלת שירות WinRM
כדי להפעיל את שירות WinRM בכל המחשבים היעד:
- פתח את GPMC וצור קבוצת מדיניות חדשה. בתוך ה-GPO החדש, נווט אל תצורת המחשב —> הגדרות Windows —> הגדרות אבטחה —> שירותי מערכת
- בחר את מנהל המרחוק של Windows (WS-Management).
- בלוח ההגדרות סמן את התיבה למעלה של הגדר הגדרת מדיניות זו
- בחר את לחצן הרדיו לצד אוטומטי כדי להגדיר את WinRM להתחיל אוטומטית בעת האתחול.
- לחץ על אישור כדי לאשר את ההגדרה.
פתיחת פתח הגן של חומת האש של Windows
בשלב הבא, עליך לפתוח את פתח ה-WinRM בכל המחשבים היעד. בעודך עדיין עורך את ה-GPO שנוצר מקודם:
- נווט אל תצורת המחשב —> הגדרות Windows —> הגדרות אבטחה —> גן הגן הגדול של Windows עם אבטחה מתקדמת.
2. לחץ על חוק נכנס חדש כדי ליצור חוק נכנס חדש.
3. בדף הראשון בחר ב מוגדר מראש ובחר ב ניהול מרחוק של Windows כמופיע למטה.

4. בדף הבא, בדוק את התיבה עבור חוק הרשת דומיין/רשת פרטית אלא אם כן אתה יודע שרשתות ציבוריות משמשות בסביבות שלך ותצטרך לאפשר חיבורים מרחוק מהן.

5. בדף הבא השאר את ברירת המחדל לאפשר את החיבור ולחץ על סיום כדי ליצור את החוק.
צור את המאזין WinRM ורשימת הסינון
הפריט הסופי לתצורה להוספה לקבוצת המדיניות הוא יצירת המאזין WinRM והתרוממת החיבורים למאזין WinRM. הגדרה זו יוצרת מאזין WinRM עבור HTTP ומאפשרת חיבורים אליו מכתובות IP מסוימות או טווחי IP מסוימים.
תוך עדיין עריכת מדיניות ה-WinRM:
- נווט אל תצורת המחשב —> תבניות מנהל —> רכיבי Windows —> ניהול מרחוק של Windows (WinRM) —> שירות WinRM.
2. בחר מופעל עבור ההגדרה אפשר ניהול שירות מרחוק דרך WinRM.
3. בתחתית ההגדרה אפשר ניהול שרת מרחוק דרך WinRM, הזן את האסטריסק (*
) עבור שני הסינונים IPv4 ו IPv6 כמצויין למטה.
שים לב שניתן לציין מארחים מרובים מופרדים בפסיק בכל רשימת סינון אם ידוע מראש אילו מארחים יתחברו לכל מחשבי היעד.

4. לחץ אישור כדי לאשר את הגדרת GPO החדשה ביותר.
יישום ה-GPO
בזמן זה, ה-GPO צריך להיות נוצר ומוכן לשימוש. המשימה הסופית שעליך לבצע כעת היא ליישם את ה-GPO הזה על כל מחשבי היעד שברצונך לאפשר WinRM עליהם. לא תלמד כיצד להקצות GPO למחשבי יעד במדריך זה.
אם אינך יודע כיצד להקצות GPO לקבוצת מחשבים בפעילות הניהולית, כדאי לך לבדוק את מאמרגן זה.
שלבים הבאים
במדריך זה, למדת כיצד לאפשר PSRemoting בדרכים רבות. כיצד תאפשר PSRemoting ייתן להשתנות מאוד על פי הסביבה שלך ואני מקווה שכיסיתי את התרחיש שלך כאן.
עכשיו קח את מה שלמדת, צא לשם והתחל להשתמש ב-PSRemoting בסביבתך!