איך לתקן את בעיית ה-Double-Hop של PowerShell: מדריך מקיף

האם ניסית לגשת למשאב מרוחק במהלך עבודה בסשן של PowerShell Remoting רק כדי להתעקש על חסימת גישה מעצבנת בשם "בעיה של קפיצה כפולה"? הבעיה המוכרת הזאת מונעת ממך לגשת למחשב מרוחק שני מהסשן הנוכחי שלך.

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

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

הרצת PowerShell כמשתמש אחר

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

לדוגמה, נסקור סקריפט שמספור תת-תיקיות במחשב מרוחק באמצעות נתיב UNC:

(Get-ChildItem -Path \\SRV2\c$ -Directory).Count

אם אתה מחובר למשתמש שחסר לו הרשאות לגישה למשאב, אתה יכול להפעיל את PowerShell תחת חשבון משתמש אחר:

  1. חפש את PowerShell בתפריט ההתחלה.
  2. לחץ ימין על קיצור הדרך של PowerShell ובחר פתח מיקום קובץ.
  3. בממערכת הקבצים, החזק את Shift, לחץ ימין על קיצור הדרך, ובחר הפעל כמשתמש שונה.
  4. הזן את פרטי הכניסה של משתמש עם ההרשאות הנדרשות.

לאחר הפעלת PowerShell כמשתמש שונה, הפקודה צריכה להצליח כעת:

(Get-ChildItem -Path \\SRV2\c$ -Directory).Count

טיפ: אם אתה מריץ פקודות בעיקר עם הרשאות שונות, שקול להשתמש בפקודת Start-Process עם הפרמטר -Credential. גישה זו מאפשרת לך לפתוח ישיבות חדשות של PowerShell ישירות מהקונסולה עם הרשאות אחרות.


בדיקת חיבורים מרחוק

ייתכן שתוכל לגשת בהצלחה למשאב מרחוק מהמחשב באופן מקומי, כמו תיקיית שיתוף, כאשר אתה עובד עם מערכות מרחוק מרובות. אך תגלה כי אותה פקודה יוצרת שגיאת "גישה נדחית" כאשר מבוצעת (ממחשב מרחוק שני).

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

כדי לבדוק את החיבורים המרחוק שלך, הקמת ישיבה עם מחשב אחר:

Enter-PSSession -ComputerName SRV3

לאחר החיבור, נסה להריץ את אותה הפקודה על המחשב השני:

(Get-ChildItem -Path \\SRV2\c$ -Directory).Count

בדרך כלל הבדיקה מביאה לשגיאת "גישה נדחית", גם אם אתה משתמש בחשבון עם הרשאות.

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

whoami

התנהגות זו (הדאבל הופ) קורה משום ש-PowerShell לא מעביר את ההרשאות שלך לצעד הבא. מנגנון זה הוא תכונת אבטחה המובנית באימות Kerberos, אך זה עשוי להיות בעיה גדולה בניהול מערכות מרובות.

פתרון לבעיה של הדאבל הופ עם הגדרות של ישיבות

פתרון אחד לבעיית הדאבל הופ הוא ליצור הגדרת ישיבה על המחשב האמצעי.

התחל ברישום הגדרת ישיבה על המחשב אליו אתה מתחבר, במקרה זה, SRV3.

הפקודה הבאה:

  • מעניקה שם לקונפיגורציית הפגישה (למשל, מנהל מערכת).
  • מגדרת את החשבון (RunAsCredential) שעליו רצים הפגישות.
  • מבטיחה (Force) שהקונפיגורציה תיושם ומביאה את שירות WinRM להיפתח מחדש.
Invoke-Command -ComputerName SRV3 -ScriptBlock {
    Register-PSSessionConfiguration -Name Admin -RunAsCredential 'psforsysadmins.local\adam' -Force
}

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

עם הקונפיגורציה במקום, אתה יכול עכשיו להתחבר באמצעות הפרמטר ConfigurationName:

Invoke-Command -ComputerName SRV3 -ScriptBlock {
    (Get-ChildItem -Path \\SRV2\c$ -Directory).Count
} -ConfigurationName Admin

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


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


סיכום

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

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

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

Source:
https://adamtheautomator.com/powershell-double-hop-fix/