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/