2015-12-09 1 views
9

J'ai plusieurs scripts que j'ai utilisés dans un wrapper pour me permettre de gérer des choses comme vérifier que j'avais une connexion valide et demander à l'utilisateur si la connexion/abonnement actuellement sélectionné est celui sur lequel il veut exécuter le script avant de l'exécuter, etc.Azure Powershell: quelle est la commande opposée à Login-AzureRmAccount (utilisé pour être Clear-AzureProfile)

Les commandes classiques ont Clear-AzureProfile qui me permet de l'exécuter à partir d'un script et de rompre la connexion afin qu'il ne puisse plus être utilisé sans appeler Add-AzureAccount. Avec les applets de commande RM, je ne trouve que Login-AzureRmAccount mais une fois connecté ... comment appeler la déconnexion?

Il ne semble pas y avoir de compte-rendu-AzureRMAcount ou de compte-Remove-AzureRMAccount et Clear-AzureProfile n'a aucun effet. Je lance un poste de travail de développement et je me connecte à plusieurs abonnements client différents afin de pouvoir détruire la connexion plutôt que d'appeler simplement un autre login par-dessus (si cette connexion échouait, l'ancienne connexion serait toujours configurée ce qui est dangereux pour moi)

Je viens connecté cela à: https://msdn.microsoft.com/en-us/library/mt619248.aspx que de la documentation, il semble que les commandes peuvent manquer

Répondre

1

Dans la dernière version 1.0.1 MS powershell n'a pas fourni de cmdlets qui vous recherchez comme Logout-AzureRMAccount ou Remove-AzureRMAccount et Clear-AzureRMProfile.

Dans votre cas, je suggère plutôt une solution de contournement pour vous. Tout d'abord, fermez votre fenêtre PS, supprimez vos données de cahce et de température. Deuxièmement, supprimez votre nom d'Azure AD, puis ajoutez-le à nouveau. Téléchargez un nouveau fichier publishsetting et recommencez. Une fois que vous aurez rajouté le nom, il traitera tout comme neuf pour vous.

+0

Bien essayé, mais ce qui fonctionne dans le module Azure ne fonctionne pas dans le module Azure RM. – codekaizen

2
> get-command -Module AzureRM.Profile 

CommandType  Name       
-----------  ----       
Alias   Login-AzureRmAccount   
Alias   Select-AzureRmSubscription  
Cmdlet   Add-AzureRmAccount    
Cmdlet   Add-AzureRmEnvironment   
Cmdlet   Disable-AzureRmDataCollection 
Cmdlet   Enable-AzureRmDataCollection 
Cmdlet   Get-AzureRmContext    
Cmdlet   Get-AzureRmEnvironment   
Cmdlet   Get-AzureRmSubscription   
Cmdlet   Get-AzureRmTenant    
Cmdlet   Remove-AzureRmEnvironment  
Cmdlet   Save-AzureRmProfile    
Cmdlet   Select-AzureRmProfile   
Cmdlet   Set-AzureRmContext    
Cmdlet   Set-AzureRmEnvironment  

Notez que Login-AzureRmAccount est un alias à Add-AzureRmAccount et il n'y a pas Remove correspondant.

Set-AzureRmContext peut prendre un $null pour effacer le contexte, mais je serais surpris s'il ne donne pas une erreur.

+0

PowerShell 5.1 inclut Logout-AzureRmAccount. C'est un alias pour Remove-AzureRmAccount. Je ne sais pas quelle version l'a d'abord incluse. –

+0

@ MikeSherrill'CatRecall 'quelle version des cmdlets Azure? – codekaizen

+1

Duh. Le module AzureRM est la version 5.1.1. –

2

La fermeture directe de votre session PS ferait l'affaire. Le module AzureRM.Profile ne conserve pas votre profil tant que vous ne lui avez pas demandé de le faire avec Save-AzureRmProfile.

0

Il convient de noter que vous pouvez toujours lancer une exception si l'appel à LOGIN-AzureRmAccount ne parvient pas à assurer votre script ne continue pas avec l'ancien compte:

Login-AzureRmAccount -ErrorAction Stop 

Le dialogue qui ne permettra pas un identifiant invalide Il vous indiquera si vous êtes déjà connecté et vous laissera le choix de rester connecté avec le compte actuel ou de vous connecter avec un autre, auquel cas l'utilisateur doit encore faire un choix conscient pour continuer. S'ils choisissent de s'annuler hors de la boîte de dialogue de connexion, l'exception résultante arrêtera le script.

login-azurermaccount : authentication_canceled: User canceled authentication At line:1 char:1 + login-azurermaccount + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Add-AzureRmAccount], AadAuthenticationCanceledException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.AddAzureRMAccountCommand

4

Il semble que les œuvres suivantes:

Set-AzureRmContext -Context ([Microsoft.Azure.Commands.Profile.Models.PSAzureContext]::new()) 
+0

Merci - cela fonctionne –

+0

Je reçois cette erreur lors de l'utilisation de cette méthode: 'L'invocation de la méthode a échoué car [Microsoft.Azure.Commands.Profile.Models.PSAzureContext] ne contient pas de méthode nommée 'new'.' –