Azure Powershell: какая команда противоположна Login-AzureRmAccount (раньше была Clear-AzureProfile)

У меня есть различные сценарии, которые я использовал для запуска в оболочке, чтобы позволить мне обрабатывать такие вещи, как проверка наличия действительного соединения и спрашивать пользователя, является ли выбранное в настоящее время соединение/подписка тем, на котором они хотят запустить сценарий перед его запуском. и т.п.

У классических команд есть Clear-AzureProfile, который позволяет мне запускать его из скрипта и эффективно разрывать соединение, чтобы его нельзя было использовать снова без вызова Add-AzureAccount.

С помощью командлетов RM я могу найти только Login-AzureRmAccount, но после входа в систему... как мне вызвать выход из системы?

По-видимому, отсутствует Logout-AzureRMAccount или Remove-AzureRMAccount, а Clear-AzureProfile не действует.

Я запускаю рабочую станцию ​​​​разработчика и подключаюсь к нескольким различным клиентским подпискам, поэтому хочу иметь возможность разрушить соединение, а не просто вызывать другой логин поверх него (если этот логин не удался, у меня все еще было бы установлено старое соединение, которое опасно для меня)

Я только что зарегистрировал это по адресу: https://msdn.microsoft.com/en-us/library/mt619248.aspx судя по документации может не хватать команд


person Dave Hodgson    schedule 09.12.2015    source источник


Ответы (8)


Появляются следующие работы:

Set-AzureRmContext -Context ([Microsoft.Azure.Commands.Profile.Models.PSAzureContext]::new())
person charleswj81    schedule 09.09.2017
comment
Я получаю эту ошибку при использовании этого метода: Method invocation failed because [Microsoft.Azure.Commands.Profile.Models.PSAzureContext] does not contain a method named 'new'. - person Hans Vonn; 15.02.2018
comment
Мне пришлось использовать New-Object Microsoft.Azure.Commands.Profile.Models.PSAzureContext вместо синтаксиса ::new() — после этого все заработало нормально. - person E. Moffat; 10.11.2018

ОБНОВЛЕНИЕ. Для нового модуля PowerShell Azure «az» используйте

Connect-AzAccount

для входа и

Disconnect-AzAccount

для выхода.

person Tomino    schedule 23.04.2019

> 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    

Обратите внимание, что Login-AzureRmAccount является псевдонимом Add-AzureRmAccount, и нет соответствующего Remove.

Set-AzureRmContext может потребоваться $null для очистки контекста, но я был бы удивлен, если бы вместо этого он просто не выдал ошибку.

person codekaizen    schedule 14.12.2015
comment
PowerShell 5.1 включает Logout-AzureRmAccount. Это псевдоним Remove-AzureRmAccount. Я не знаю, какая версия впервые включила его. - person Mike Sherrill 'Cat Recall'; 15.01.2018
comment
@MikeSherrill'CatRecall' какая версия командлетов Azure? - person codekaizen; 15.01.2018
comment
Дух. Модуль AzureRM версии 5.1.1. - person Mike Sherrill 'Cat Recall'; 16.01.2018
comment
Как установить новую версию: docs.microsoft.com/en-us/powershell/azure/ - person Simon_Weaver; 19.02.2018

Подойдет прямое закрытие сеанса PS. Модуль AzureRM.Profile не сохранит ваш профиль, пока вы не сообщите ему об этом с помощью команды Save-AzureRmProfile.

person EmmaZhu-MSFT    schedule 21.12.2015

В последней версии PowerShell 1.0.1 MS не предоставила никаких командлетов, которые вы ищете, таких как Logout-AzureRMAccount или Remove-AzureRMAccount и Clear-AzureRMProfile.

В вашем случае я бы предпочел предложить вам обходной путь.

Сначала закройте окно PS, удалите кэш и временные данные. Во-вторых, удалите свое имя из Azure AD, а затем добавьте его обратно. Загрузите новый файл параметров публикации и начните заново. Как только вы повторно добавите имя, оно будет воспринимать все как новое для вас.

person Aatif Akhter    schedule 10.12.2015
comment
Хорошая попытка, но то, что работает в модуле Azure, не работает в модуле Azure RM. - person codekaizen; 15.12.2015

Стоит отметить, что вы всегда можете выкинуть исключение, если вызов Login-AzureRmAccount не гарантирует, что ваш скрипт не продолжит работу со старой учетной записью:

Login-AzureRmAccount -ErrorAction Stop

Полученное диалоговое окно не позволит ввести неверный логин. Он сообщит вам, если вы уже вошли в систему, и предоставит выбор: оставаться в системе с текущей учетной записью или войти с другой, и в этот момент пользователю все равно придется сделать какой-то сознательный выбор, чтобы продолжить. Если они выберут отмену из диалогового окна входа в систему, результирующее исключение остановит сценарий.

login-azurermaccount : authentication_canceled: Пользователь отменил аутентификацию В строке: 1 char: 1 + login-azurermaccount + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [ Add-AzureRmAccount], AadAuthenticationCanceledException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.AddAzureRMAccountCommand

person Dean Goodman    schedule 26.05.2016

Я знаю, что это старый вопрос. Но похоже, что это было обновлено с помощью Remove-AzureAccount. Подробнее об этом можно прочитать здесь и Remove-AzureRMAccount здесь.

person Nixphoe    schedule 26.09.2017

Раньше контекст AzureRM был привязан к сеансу powershell, поэтому было достаточно просто закрыть консоль.

Но, похоже, последние версии модуля powershell изменили это.

Используя последнюю версию модуля powershell, если вы войдете в одну консоль, вы также войдете во все остальные консоли.

И вы можете выйти из системы с помощью нового командлета Logout-AzureRmAccount.

person K. Shu    schedule 31.05.2018