6

当我运行下面的PowerShell命令(从Azure管理工具管理单元):如何通过具有凭据的代理服务器运行Azure powershell cmdlet?

get-osversions -subscriptionId **** -certificate (get-item cert:\CurrentUser\MY\******) 

我收到以下错误信息:

Get-OSVersions : The remote server returned an unexpected response: (407) Proxy Authenti cation Required. At line:1 char:15 + get-osversions <<<< -subscriptionId * -certificate (get-item cert:\CurrentUser\MY*****) + CategoryInfo : CloseError: (:) [Get-OSVersions], ProtocolException + FullyQualifiedErrorId : Microsoft.Samples.AzureManagementTools.PowerShell.HostedS ervices.GetOSVersionsCommand

Get-OSVersions : Object reference not set to an instance of an object. At line:1 char:15 + get-osversions <<<< -subscriptionId * -certificate (get-item cert:\CurrentUser\MY***) + CategoryInfo : CloseError: (:) [Get-OSVersions], NullReferenceException + FullyQualifiedErrorId : Microsoft.Samples.AzureManagementTools.PowerShell.HostedS ervices.GetOSVersionsCommand

看来,网络代理服务器这里被否认编写它需要的访问。

我已经在互联网上看了一遍,似乎没有简单的方法解决此问题,因为此cmdlet没有有效的“-credentials”或代理服务器参数。

我知道有一个'Get-Credential'cmdlet,但我认为它没有帮助。您如何将凭据传递给Azure cmdlet?

任何人都可以想到的任何方式来解决这个问题?..

...不是使用不同的非代理的互联网连接等?

我难倒。

很多感谢您的时间。

回答

1

我认识的一些客户使用此处列出的方法(Supporting Basic Auth proxies)成功。如果您需要其他代理类型,它遵循相同的模式。关于这一点的好处是它不需要更改cmdlet。

+0

感谢您的提示。道歉为新手问题,但你会如何使用PowerShell脚本使用此方法? –

+0

您使用了相同的方法,但我相信您需要将设置放在powershell.exe.config – dunnry

+0

感谢您的帮助!使用链接中的设置在'C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0'和'C:\ Windows \ System32 \ WindowsPowerShell \ v1.0'中创建powershell.exe.config文件。不再收到代理错误消息。 –

15

更容易:

[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials 
+2

更容易,这应该是公认的答案! – jeroenh

+2

我会诚实的,并没有运行dunnry接受的答案,因为这个看起来很简单,先尝试。它可以工作,并且很容易包含在PowerShell配置文件中,因此每次运行PowerShell时都会自动执行。 – Snellgrove

+0

没有这个,一个简单的Get-AzureLocation失败了,现在它工作的很好。 –

相关问题