如何将默认凭据传递给PowerShell Web客户端对象?替代PS v2的Invoke-WebRequest?

EGr*_*EGr 12 powershell powershell-2.0 webclient-download powershell-3.0

我正在运行以下代码

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

这不起作用,因为它需要我的提示凭据传递到下载字符串函数.我用上面的代码替换了这个:

$NagiosResults = Invoke-WebRequest -Uri $Uri -UseDefaultCredentials | ConvertFrom-Json
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我运行脚本的服务器没有Powershell v3; 所以这也行不通.Invoke-WebRequestPowershell v2 有替代品吗?如果没有,有没有办法与System.Net.WebClient对象'使用默认凭据'?

Goy*_*uix 20

只需将UseDefaultCredentialsWebClient 的属性设置为,即可$true使用当前用户的凭据进行身份验证.

$uri = "http://myserver/service"
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$json = $wc.DownloadString($uri)
Run Code Online (Sandbox Code Playgroud)