PowerShell で proxy 越え

PowerShellはネットワーク上のリソースにアクセスする機能がいっぱい含まれていてとても便利に使えます。

たとえば、PowerShellヘルプを更新してみましょう。

 

Update-Help

 

たとえば、外部WEBページにアクセスしてみましょう。

 

Invoke-WebRequest http://www.example.com

 

ところがこれらコマンドが動かない場合があります。WEBブラウザでのブラウジングは平気なのにこれらコマンドは動かないという場合、proxy の設定が絡んでいることが考えられます。

PowerShellのプロキシ設定はWEBブラウザのプロキシ設定とリンクしていません。PowerShell用に設定しなければいけません。

その方法がとてもわかりやすく書いてあるサイトがこちら↓

Using PowerShell Behind a Proxy | Windows OS Hub

proxy の設定がPACファイルによるものの場合、認証Proxyによるものの場合、こちらの手法がピタリと当てはまります。

認証がAD認証の場合、以下設定だけで PowerShell からProxy経由で接続できるようになります。

 

$Wcl = new-object System.Net.WebClient
$Wcl.Headers.Add(“user-agent”, “PowerShell Script”)
$Wcl.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

 

認証情報は手動で設定するんだという場合は追加で以下設定を。

 

$Wcl=New-Object System.Net.WebClient
$Creds=Get-Credentialbr
$Wcl.Proxy.Credentials=$Creds

 

途中認証を求める画面が出るのでそこで入力すれば良いです。

メンドクサイ構成のネットワークでもどうにかやっていこう。