6

Cuando ejecuto el siguiente cmdlet de PowerShell (de las herramientas de administración de Azure complemento):¿Cómo puedo ejecutar un cmdlet de Azur powershell a través de un servidor proxy con credenciales?

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

me sale el siguiente mensaje de error:

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

Parece que el servidor proxy de Internet aquí está negando la script el acceso que requiere.

He echado un buen vistazo en Internet y parece que no hay una forma fácil de solucionar este problema, ya que este cmdlet no tiene un "-credentials" válido o un parámetro de servidor proxy.

Sé que hay un cmdlet 'Get-Credential', pero no creo que sea útil. ¿Cómo pasaría la credencial al cmdlet de Azure?

Puede alguien pensar en ninguna manera de evitar este problema? ..

... aparte de usar una conexión a Internet no proxy diferente?

Estoy perplejo.

Muchas gracias por su tiempo.

Respuesta

1

Algunos clientes que conozco tuvieron éxito utilizando el método descrito aquí (Supporting Basic Auth proxies). Si necesita otros tipos de proxy, sigue el mismo patrón. Lo bueno de esto es que no requiere cambiar los cmdlets.

+0

Gracias por la punta. Disculpas por la pregunta de novato, pero ¿cómo harías para utilizar este método con un script de powershell? –

+0

Utiliza el mismo método descrito, pero creo que necesitaría poner la configuración en el archivo powershell.exe.config – dunnry

+0

¡Gracias por la ayuda! Se crearon archivos powershell.exe.config en 'C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0' y 'C: \ Windows \ System32 \ WindowsPowerShell \ v1.0' con las configuraciones del enlace. Ya no recibe el mensaje de error de proxy. –

15

más fácil:

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

MUCHO más fácil, ¡esta debería ser la respuesta aceptada! – jeroenh

+2

Seré honesto y no ejecutaré la respuesta aceptada por dunnry, ya que este parecía tan simple de probar primero. Funciona y es fácil de incluir en su perfil de PowerShell, por lo que se ejecuta automáticamente cada vez que ejecuta PowerShell. – Snellgrove

+0

Sin esto, un simple Get-AzureLocation falló, ahora funciona muy bien. –

Cuestiones relacionadas