בקשת אינטרנט שעובדת באופן אינטראקטיבי בשרת B עלולה לקבל 407 כאשר אותה פקודה מופעלת שם דרך PowerShell remoting. התחברות מ-A אל B אינה מאצילה את הזהות הזו אוטומטית עבור חילופי האימות הבאים ב-B.

A → remoting session on B → HTTP proxy → website

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

Invoke-Command -Session $session -ArgumentList $proxyCredential -ScriptBlock {
    param([pscredential]$outboundProxyCredential)

    $requestOptions = @{
        Uri = 'https://api.example/'
        Proxy = 'http://proxy.example:8080'
        ProxyCredential = $outboundProxyCredential
    }
    Invoke-WebRequest @requestOptions
}

אובייקט פרטי האימות מיועד לחשבון המיועד של הפרוקסי. ההפעלה עדיין משתמשת באימות ה-remoting הרגיל שלה, וכל התחברות לאתר נשארת חלק מהבקשה לאותו אתר.

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

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

אפשרויות הפרוקסי ב-New-PSSessionOption נוגעות לחיבור ה-remoting עצמו. הגדר את Invoke-WebRequest בתוך בלוק הסקריפט המרוחק כאשר חיבור האינטרנט היוצא של B הוא זה שזקוק לפרוקסי.

מאמרים קשורים