1

Я пытаюсь автоматизировать загрузку некоторых файлов с помощью командлета «start-bitstransfer», но я должен использовать прокси-сервер.Как использовать учетные данные сеанса по умолчанию для bitstransfer proxy в powershell

Wen Я использую «get-credentials», нет проблем, нет проблем с загрузкой файла, но я бы хотел избежать запроса текущего сеанса пользователя. $ mycred = Get-Credential Start-BitsTransfer -proxyusage переопределить -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

Оказывается, что 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