powershell azure automation

powershell - ¿Cómo iniciar sesión sin preguntar?



azure automation (3)

Puede que sea tarde para publicar, pero encontré otra solución simple, así que enumérela aquí para ayudar a otros:

  1. Inicie sesión en la cuenta de azure con el comando Login-AzureRmAccount .
  2. Guarde el contexto en el archivo Json usando el comando Save-AzureRmContext -Path "E:/AzureProfile.json" .
  3. Ahora puede iniciar sesión sin preguntar usando el comando: Import-AzureRmContext -Path "E:/AzureProfile.json" .

Intenté seguir los comandos para obtener una experiencia de inicio de sesión noprompt más rápida, pero cada vez que encuentro una ventana emergente de inicio de sesión. Incluso intenté usar el certificado inicialmente, pero como eso no probó que funcionara, se intentó con la identificación del inquilino. Cualquier ayuda o sugerencia sobre cómo tener un inicio de sesión sin problemas y más rápido en lugar de interactivo.

Login-AzureRmAccount -SubscriptionId 1238154XXXXfd-1c4121796e58 -TenantId 754XXXXXXXXXXX5d10d8XXX Add-AzureRmAccount -Tenant "754XXXXXXXXXXX5d10d8XXX" -SubscriptionId "1238154XXXXfd-1c4121796e58" Login-AzureRmAccount -TenantId 754XXXXXXXXXXX5d10d8XXX

O bien, es que tengo que ir a través de un mensaje de inicio de sesión interactivo siempre. Solicita punteros y agradece de antemano por consideración y tiempo.


Puede usar el parámetro de -Credential y DPAPI para iniciar sesión.

Primero, ejecute el siguiente PowerShell una vez para almacenar una contraseña segura para su cuenta.

Read-Host "Enter Password" -AsSecureString | ConvertTo-SecureString ` -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:/Password.txt"

Y luego, puede utilizar el siguiente script para iniciar sesión.

# The azure account here must not be a Live ID. $username = "<your Azure account>" $SecurePassword = Get-Content "C:/Password.txt" | ConvertTo-SecureString $cred = new-object -typename System.Management.Automation.PSCredential ` -argumentlist $username, $SecurePassword Login-AzureRmAccount -Credential $cred

De otra manera sería usando Service Principal. Primero, debes seguir el artículo para crear un Director de Servicio.

Y luego, use el siguiente script para iniciar sesión.

$clientID = "<the client id of your AD Application>" $key = "<the key of your AD Application>" $SecurePassword = $key | ConvertTo-SecureString -AsPlainText -Force $cred = new-object -typename System.Management.Automation.PSCredential ` -argumentlist $clientID, $SecurePassword $tenantID = "<the tenant id of your subscription>" Add-AzureRmAccount -Credential $cred -TenantId $tenantID -ServicePrincipal


Si está utilizando un Live ID, no puede iniciar sesión sin un aviso. No puedes iniciar sesión de forma no interactiva.

Una vez que haya iniciado sesión, puede guardar sus credenciales con Save-AzureRmProfile esto guardará el token de inicio de sesión en el disco, que luego podrá usar para iniciar sesión nuevamente con Select-AzureRmProfile Sin embargo, ese token caduca, por lo que deberá iniciar sesión nuevamente.

Para iniciar sesión sin que se le solicite nada, debe crear una cuenta de Azure Active Directory.

Puedes usar algo como esto

$cred = Get-Credential Add-AzureRmAccount -Credential $cred

También puede crear un objeto de credencial, por lo que puede utilizar esto de forma no interactiva.