PowerShell Webclient mit Proxy benutzen

PowerShellDie Windows PowerShell ist ein mächtiges Werkzeug. Ist der eigene Rechner jedoch in einer Domäne, die sich hinter einem Proxy versteckt, können Anfragen ins Internet die Arbeit mit der PowerShell erschweren.

Ich habe versucht, die NativeScript Umgebung mit Android aufzusetzen. Der einfache Befehl scheitert:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))"

Die Meldung lautet: Fehlerhafte Proxyauthentifizierung. Das liegt daran, dass der Proxy nicht hinterlegt ist.

Proxy Einstellungen übernehmen

Im Internet Explorer sind standardmäßig die Proxy-Einstellungen hinterlegt. Um diese zu importieren, kann der folgende Befehl in der Eingabeaufforderung ausgeführt werden:

netsh winhttp import proxy source=ie

 

PowerShell Script anpassen

Das oben gezeigte PowerShell Script für die Installation des Android SDKs erstellt einen WebClient, der ein PS Script herunterlädt und dann ausführt. Damit das auch mit Proxy und Proxyauthentifizierung funktioniert, muss eine eigene Script-Datei angelegt werden. Die wird dann per Eingabeaufforderung ausgeführt. Dazu wird in einem beliebigen Verzeichnis eine Datei mit der Dateiendung „.ps1“ angelegt. In diesem Beispiel wird die Datei „C:\temp\setup.ps1“ erstellt.

Die Datei enthält folgenden Code:

$webclient = New-Object System.Net.WebClient
$creds = Get-Credential
$webclient.Proxy.Credentials = $creds
iex($webclient.DownloadString("https://www.nativescript.org/setup/win"))

Mit dem Befehl Get-Credential  werden die Zugangsdaten für den Proxy erfragt. Das eingangs vorgestellte PS Script muss anschließend abgewandelt in der Eingabeaufforderung ausgeführt werden:

@powershell -NoProfile -ExecutionPolicy Bypass -File "C:\temp
\setup.ps1"

Nun beginnt das Script zu arbeiten und die Dateien herunterzuladen.