Powershell: Update-Help nie działa przez authenticated proxy

6-mar-2015

Jeśli pracujesz z powershell wewnątrz firmowej sieci, to zapewne od Internetu odgradza cię proxy. Proxy może wymagać uwierzytelnienia. W takim przypadku komenda Update-Help zawodzi i pozostaje korzystać z opcji -Online podczas używania komendy Get-Help, dzięki czemu help wyświetla się w przeglądarce www.

Ale mamy też inne rozwiązanie. Załóżmy przez chwilę, że chcesz pobrać plik dostępny pod linkiem HTTP. W Powershell można to zrobić w następujący sposób:

$wc = New-Object System.Net.WebClient
$wc.DownloadString(’http://mobilo24.eu’)

Jeśli jesteś za authenticated proxy, to komenda skończy się błędem:

Exception calling „DownloadString” with „1” argument(s): „Serwer zdalny zwrócił błąd: (407) Wymagane uwierzytelnianie serwera pro
xy.”
At line:1 char:1
+ $wc.DownloadString(’http://microsoft.com’)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException

No cóż, trzeba pokazać obiektowi WebClient, że należy korzystać z Proxy. Spróbuj tak:

$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 

Teraz poleceniepobrania strony kończy się sukcesem:

$wc.DownloadString(’http://mobilo24.eu’)

Ale to nie wszystko. Okazuje się, że… Update-Help też zaczyna działać!!! Dlatego jeśli za authenticated proxy chcesz zaktualizaować helpa wykonaj:

$wc = New-Object System.Net.WebClient

$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 

Update-Help

Nie zapomnij przy tym uruchmić powershella „jako administrator”.

Źródła:

http://itgeeks.eu/powershell/using-powershell-from-behind-authenticated-proxy/

http://blog.stangroome.com/2013/08/02/powershell-update-help-and-an-authenticating-proxy/

 

Komentarze są wyłączone

Autor: Rafał Kraik