Как использовать учетные данные сеанса по умолчанию для прокси-сервера 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
Другие вопросы по тегам