web-dev-qa-db-ja.com

PowerShell Webクライアントオブジェクトにデフォルトの資格情報を渡すにはどうすればよいですか? Invokeの代替-PSv2のWebRequest?

私は次のコードを実行しています

$client = new-object System.Net.WebClient
$client.DownloadFile( $UriValue, "C:\Temp\BHRout.json" )
$json = Get-Content "C:\Temp\BHRout.json"

プロンプトの資格情報をダウンロード文字列関数に渡す必要があるため、これは機能しません。私はこれを置き換えるために上記のコードを使用しました:

$NagiosResults = Invoke-WebRequest -Uri $Uri -UseDefaultCredentials | ConvertFrom-Json

これに関する唯一の問題は、スクリプトを実行しているサーバーにPowershellv3がないことです。したがって、これも機能しません。 Powershellv2のInvoke-WebRequestに代わるものはありますか?そうでない場合は、System.Net.WebClientオブジェクトで「デフォルトの資格情報を使用する」方法はありますか?

12
EGr

WebClientの UseDefaultCredentials プロパティを$trueに設定するだけで、認証に現在のユーザーの資格情報が使用されます。

$uri = "http://myserver/service"
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$json = $wc.DownloadString($uri)
20
Goyuix