0

Je suis en train de modifier un runbook de galerie qui copie une base de données en direct dans une base de données de test selon un planning. Il échoue au premier obstacle; l'authentification et la sélection de l'abonnement d'azur relevatnAutomatisation Azure: les informations d'identification fournies par Get-PSAutomationCredential ne fonctionnent pas avec Add-AzureAccount?

Le Runbook ressemble à ceci:

$Cred = Get-AutomationPSCredential -Name 'automationCredential' 

Write-Output "UN: $($Cred.Username)" 

Add-AzureAccount -Credential $Cred 

Je l'ai utilisé les informations d'identification de portail lame pour créer un titre nommé « automationCredential ». Pour le nom d'utilisateur et mot de passe, j'ai fourni le nom d'utilisateur/pw que je me connecte au portail azure avec. Remarque: ce n'est pas une école/travail compte Microsoft, mais personnel un

Je peux dire à l'appel à Get-PSAutomationCredential travaille, parce que l'appel Write-Ouput montre la valeur correcte

Add-AzureAccount cependant, délivre l'erreur suivante:

Add-AzureAccount : unknown_user_type: Unknown User Type At 
Set-DailyDatabaseRestore:22 char:22 CategoryInfo   : 
CloseError: (:) [Add-AzureAccount], AadAuthenticationFailedException 
FullyQualifiedErrorId : 
Microsoft.WindowsAzure.Commands.Profile.AddAzureAccount 

Des pointeurs pour obtenir un justificatif de travail?

Répondre

1

Selon votre description, il semble que votre compte soit un compte Microsoft (tel que *@outlook.com, *@hotmail.com). Microsoft ne prend pas en charge la connexion non interactive. Il est également dangereux pour vous d'utiliser votre compte pour vous connecter directement à votre abonnement. Pour un Runbook, vous pouvez utiliser les codes suivants pour vous connecter.

$connectionName = "AzureRunAsConnection" 
try 
{ 
    # Get the connection "AzureRunAsConnection " 
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName   

    "Logging in to Azure..." 
    Add-AzureRmAccount ` 
     -ServicePrincipal ` 
     -TenantId $servicePrincipalConnection.TenantId ` 
     -ApplicationId $servicePrincipalConnection.ApplicationId ` 
     -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
} 
catch { 
    if (!$servicePrincipalConnection) 
    { 
     $ErrorMessage = "Connection $connectionName not found." 
     throw $ErrorMessage 
    } else{ 
     Write-Error -Message $_.Exception 
     throw $_.Exception 
    } 
} 

Dans le code ci-dessus, vous devez utiliser la connexion AzureRunAsConnection, il est créé par défaut Azure, vous pouvez l'utiliser directement, vous pouvez vérifier cette connexion, il comprend vos informations d'abonnement. enter image description here

De plus, vous pouvez créer une nouvelle connexion, veuillez vous référer à cette link.

+0

@CaiusJard Lorsque vous créez un runbook Azure Automation, il crée un service principal et est utilisé pour la connexion. Ceci est recommandé par Azure. Plus d'informations s'il vous plaît se référer à ce [lien] (https://docs.microsoft.com/en-us/azure/automation/automation-create-runas-account). –

+0

Fumeurs sacrés, quelque chose dans cette entreprise qui a réellement fonctionné; merci walter! –

1

Avez-vous essayé d'utiliser la version du gestionnaire de ressources de la cmdlet de connexion (Add-AzureRmAccount)?

+0

Tat semble aller un peu plus loin; je l'ai maintenant se plaindre de la ligne suivante "l'abcdef1234-blahblah d'abonnement n'existe pas" –

+0

Utilisez-vous également la version RM de cette cmdlet? (Select-AzureRmSubscription) –