gpt4 book ai didi

powershell - 如何捕获特定的 start-bitstransfer "Proxy authentication is required"异常?

转载 作者:行者123 更新时间:2023-12-02 01:50:15 25 4
gpt4 key购买 nike

无论我做什么我都无法捕捉到这种类型的异常:

Start-BitsTransfer : HTTP status 407: Proxy authentication is required.
At line:4 char:6
+ Start-BitsTransfer -Source $url -Destination $fullPath
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], Exception
+ FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand

我无法使用“invoke-command”和 [System.Management.Automation.RuntimeException] (PSRemotingTransportException),因为运行远程脚本 block 时不支持 BITS。

怎么做?

最佳答案

这不是您问题的直接答案,但作为先发制人的解决方案,您可以在尝试开始 BITS 传输之前检查是否需要代理身份验证。它不会捕获该错误,但会有效地测试相同的条件并允许您对其进行补偿。

您可以做的是创建一个 System.Net.WebClient 对象并查看它是否需要代理身份验证:

$WC = New-Object System.Net.WebClient
$ProxyAuth = !$WC.Proxy.IsBypassed("http://www.stackoverflow.com")

现在,如果您在代理服务器后面,$ProxyAuth 将为真,因此您可以根据需要对其进行测试,如果您运行的是 PSv3 或更高版本,则可以为 设置默认参数>Start-BitsTransfer 使用提供的凭据:

If($ProxyAuth){
$ProxyCred = Get-Credential -Message "Enter credentials for Proxy Authentication"
$PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyAuthentication","Basic")
$PSDefaultParameterValues.Add("Start-BitsTransfer:ProxyCredential",$ProxyCred)
}

现在您可以运行脚本,如果需要代理身份验证,它会要求提供凭据,然后执行您的传输。

很多内容来自或改编自 PowerShell Magazine .

关于powershell - 如何捕获特定的 start-bitstransfer "Proxy authentication is required"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23221390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com