我试图使用" start-bitstransfer"来自动下载某些文件。 cmdlet,但我应该使用代理。
我使用" get-credentials"没有问题下载文件没有问题,但我想避免提示当前用户会话。 $ mycred = GET-凭证 Start-BitsTransfer -proxyusage override -proxylist @(" myproxy.com:8080")-proxycredential $ mycred -Proxyauthentication Ntlm http://go.microsoft.com/fwlink/?LinkId=76054。\ wsusscn2.cab
但是当我尝试使用defaultcredentials以避免提示时 $ mycred = [System.Net.CredentialCache] :: DefaultCredentials
我得到的错误与"用户名"相关像这样: Start-BitsTransfer:无法处理参数' ProxyCredential'的参数转换。的userName
如何使用默认用户会话凭据?我已尝试使用其他样本,我已经看到将凭据传递给代理,但没有一个正常工作。 有什么建议吗?
此致
答案 0 :(得分:0)
由于处理异步文件传输的基础.NET方法,Start-BitsTransfer
似乎无法使用默认凭据。
如果Start-BitsTransfer
不是硬性要求,我建议WebClient
。
创建$global:webClient
对象的函数;
function Set-WebClient {
if(!($global:webClient)){
try { $global:webClient = New-Object System.Net.WebClient }
catch { $M="WebC: Unable to setup WebClient" ; write-output $M }
if($global:webClient){
try { $global:webClient.Proxy = [System.Net.WebRequest]::DefaultWebProxy }
catch { $M="WebC: Unable to set WebClient Proxy" ; write-output $M }
if($global:webClient.Proxy){
try { $global:webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials }
catch { $M="WebC: Unable to set WebClient Proxy Credentials for Authorization " ; write-output$M }
}
}
}
} ## end function Set-WebClient
现在调用该函数,然后让.Net对象下载该文件。
Set-WebClient
$url = "http://go.microsoft.com/fwlink/?LinkId=76054"
$output = "$((Get-Location).Path)\wsusscn2-$($DT).cab"
$webClient.DownloadFile($url,$output) ## downloads the file