Invoke-WebRequest: אספקת פרטי אימות של פרוקסי ב-PowerShell
ל-Invoke-WebRequest יש פרמטרים נפרדים לפרטי אימות של פרוקסי. פרטי האימות של היעד והתחברות מוצלחת בדפדפן אינם מחליפים אותם.
עבור חשבון פרוקסי מפורש, העבר אובייקט פרטי אימות אל -ProxyCredential:
$proxyAccount = Get-Credential
Invoke-WebRequest -Uri https://example.com/ -Proxy http://proxy.example:8080 -ProxyCredential $proxyAccountהחלף את נקודת הקצה בשירות המאושר. Get-Credential מבקש חשבון במקום להטביע סיסמה בשורת הפקודה. החשבון הזה עובר למתווך; פרטי האימות של היעד הם פרמטר נפרד ואינם יכולים להשיב ל-407 של הפרוקסי.
אם סכימת האימות של הפרוקסי וזהות התהליך תומכות באימות משולב, בחר ב--ProxyUseDefaultCredentials במקום. אל תשלב אותו עם פרטי אימות פרוקסי מפורשים באותה בקשה.
בדוק את העיון בגרסת ה-PowerShell שמריצה את הסקריפט. Windows PowerShell ו-PowerShell מודרני נבדלים במימוש ובזמינות פרמטרים; גרסאות נתמכות מספקות גם -NoProxy לבקשה ישירה מפורשת.
כאשר אותו סקריפט מתנהג אחרת כמשימה
בדוק רשומות $PSDefaultParameterValues רלוונטיות ואת תצורת הפרוקסי שהתהליך תומך בה. פרופיל יכול בעת תחילת הפעלה להוסיף ברירות מחדל של פרוקסי ייחודיות לפקודה. משימה מתוזמנת יכולה לדלג על אותו פרופיל ולרוץ בזהות אחרת, אף שקובץ הסקריפט לא השתנה.
השווה את כתובת ה-URL של היעד, נקודת הקצה שנבחרה, שיטת הפרוקסי הנדרשת, גרסת ה-PowerShell ופרטי אימות מפורשים לעומת ברירת מחדל, תוך הטשטת סודות. אם אימות הפרוקסי מצליח והיעד מחזיר 401, חקור את ההתחברות ליעד הזה במקום להעביר את סיסמת הפרוקסי לפרמטר פרטי האימות של המקור.