Как использовать учетные данные сеанса по умолчанию для прокси-сервера bitstransfer в powershell
Я пытаюсь автоматизировать загрузку некоторых файлов с помощью командлета start-bitstransfer, но мне следует использовать прокси.
Когда я использую "get-credentials", нет проблем, нет проблем с загрузкой файла, но я бы хотел избежать запроса текущего сеанса пользователя. $ mycred = get-credential Start-BitsTransfer -proxyusage override -proxylist @ ("myproxy.com:8080") -proxycredential $ mycred -Proxyauthentication Ntlm http://go.microsoft.com/fwlink/?LinkId=76054. \ wsusscn2.такси
Но когда я пытаюсь использовать defaultcredentials, чтобы избежать запроса на это $mycred= [System.Net.CredentialCache]::DefaultCredentials
Я получаю сообщение об ошибке, связанное с именем пользователя: Start-BitsTransfer: не удается обработать преобразование аргумента для параметра 'ProxyCredential'. имя_пользователя
Как я могу использовать учетные данные сеанса пользователя по умолчанию? Я пробовал с другими образцами, которые я видел, передать полномочия прокси, но ни один из них не работал. Любое предложение?
С уважением
1 ответ
Похоже, что Start-BitsTransfer
не может использовать учетные данные по умолчанию из-за базового метода.NET, который обрабатывает асинхронную передачу файлов.
Если 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