Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure PowerShell использует объекты контекста Azure PowerShell (контексты Azure) для хранения информации о подписке и аутентификации. Если у вас есть доступ к нескольким подпискам, контексты Azure позволяют вам выбрать, на какой подписке запускать командлеты Azure PowerShell. Контексты Azure также используются для хранения сведений о входе в несколько сеансов PowerShell и выполнения фоновых задач.
В этой статье описывается управление контекстами Azure, а не управление подписками или учетными записями. Если вы хотите управлять пользователями, подписками, арендаторами или другими сведениями об учетной записи, см. документацию по идентификатору Microsoft Entra. Для получения сведений об использовании контекстов для запуска фоновых или параллельных задач, ознакомьтесь со статьей Запуск командлетов Azure PowerShell в заданиях PowerShell после изучения контекстов Azure.
Обзор объектов контекста Azure
Контексты Azure — это объекты PowerShell, представляющие активную подписку для выполнения команд и сведения о проверке подлинности, необходимые для подключения к облаку Azure. При использовании контекстов Azure Azure PowerShell не требует повторной проверки подлинности учетной записи при каждом переключении подписок. Контекст Azure состоит из следующих элементов:
- Учетная запись, используемая Контексты Azure рассматривают пользователей, идентификаторы приложений и служебные принципалы одинаково с точки зрения учета.
- Активная подписка — это соглашение об обслуживании с Майкрософт для создания и запуска ресурсов Azure, которые связаны с арендатором. Клиенты часто называются организациями в документации или при работе с Microsoft Entra.
- Ссылка на кэш токена — сохраненный токен аутентификации для доступа к облаку Azure. Параметры автосохранений контекста определяют, где хранится маркер и как долго он сохраняется.
Дополнительные сведения об этих терминах см. в терминологии Microsoft Entra. Токены аутентификации, используемые контекстами Azure, подобны другим сохраненным токенам, являющимся частью постоянного сеанса.
При входе с помощью Connect-AzAccount
для вашей подписки по умолчанию формируется как минимум один контекст Azure. Объект, возвращаемый Connect-AzAccount
, является контекстом Azure по умолчанию, используемым для остальной части сеанса PowerShell.
Получите контексты Azure
Доступные контексты Azure извлекаются с помощью командлета Get-AzContext
. Список доступных контекстов с параметром ListAvailable :
Get-AzContext -ListAvailable
Или получите контекст по имени:
Get-AzContext -Name MyContextName
Названия контекстов могут отличаться от названия связанной подписки. Чтобы определить имя контекста, используйте значение свойства имени , которое не отображается по умолчанию.
Get-AzContext -ListAvailable | Select-Object -Property *
Это важно
Доступные вам контексты Azure не всегда совпадают с вашими доступными подписками. Контексты Azure представляют только локально хранимую информацию. Вы можете получить подписки, используя командлет Get-AzSubscription
.
Создание нового контекста Azure из сведений о подписке
Командлет Set-AzContext
используется для создания новых контекстов Azure и установки их в качестве активного контекста. Самый простой способ создать новый контекст Azure — использовать существующую информацию о подписке. Командлет Set-AzContext
предназначен для получения выходного объекта из Get-AzSubscription
как передаваемого по конвейеру значения и настройки нового контекста Azure.
Get-AzSubscription -SubscriptionName MySubscriptionName |
Set-AzContext -Name MyContextName
При необходимости укажите имя или идентификатор подписки и идентификатор клиента:
Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000
Если параметр Name опущен, имя и идентификатор подписки используются в качестве имени контекста в форматеSubscription Name (subscription-id)
.
Изменение активного контекста Azure
Можно использовать как Set-AzContext
, так и Select-AzContext
для изменения активного контекста Azure. Как описано в создании нового контекста Azure, Set-AzContext
создает новый контекст Azure для подписки, если он не существует, а затем переключает активный контекст на этот.
Select-AzContext
предназначен для использования только с существующими контекстами Azure и работает аналогично использованию Set-AzContext -Context
, но предназначен для использования с трубопроводами:
Set-AzContext -Context (Get-AzContext -Name MyContextName) # Set a context with an inline Azure context object
Get-AzContext -Name MyContextName | Select-AzContext # Set a context with a piped Azure context object
Как и многие другие команды управления учетными записями и контекстом в Azure PowerShell, Set-AzContext
и Select-AzContext
поддерживают параметр Scope, чтобы вы могли контролировать, сколько времени контекст остается активным.
Scope позволяет изменить активный контекст одного сеанса, не изменяя значения по умолчанию:
Get-AzContext -Name MyContextName | Select-AzContext -Scope Process
Чтобы избежать переключения контекстов для всего сеанса PowerShell, команды Azure PowerShell с параметром AzContext можно выполнять в заданном контексте:
$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context
Другое основное использование контекстов с командлетами Azure PowerShell — выполнение фоновых команд. Дополнительные сведения о запуске заданий PowerShell с помощью Azure PowerShell см. в разделе Выполнение командлетов PowerShell Azure в заданиях PowerShell.
Сохранение контекстов Azure в сеансах PowerShell
По умолчанию контексты Azure сохраняются для использования между сеансами PowerShell. Это поведение можно изменить следующим образом:
Войдите с использованием
-Scope Process
иConnect-AzAccount
.Connect-AzAccount -Scope Process
Контекст Azure, возвращаемый в рамках этого входа, действителен только для текущего сеанса и не сохраняется автоматически независимо от параметра автосохранения контекста Azure PowerShell.
Отключите автосохранение контекста в Azure PowerShell с помощью командлета
Disable-AzContextAutosave
. Отключение автосохранения контекста не удаляет сохраненные токены. Сведения о том, как очистить хранимые сведения о контексте Azure, см. в статье Удаление контекстов Azure и сохраненных учетных данных.Явным образом включить автосохранение контекста Azure можно с помощью командлета
Enable-AzContextAutosave
. С включенной функцией автосохранений контексты пользователя хранятся локально для последующих сеансов PowerShell.Вручную сохраняйте контексты с помощью
Save-AzContext
, чтобы они могли использоваться в будущих сеансах PowerShell, где их можно загрузить с помощьюImport-AzContext
:Save-AzContext -Path current-context.json # Save the current context Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
Предупреждение
Отключение автосохранения контекста не очищает сохраненные сведения о контексте. Чтобы удалить хранимую информацию, используйте командлет Clear-AzContext
. Дополнительные сведения об удалении сохраненных контекстов см. в статье Удаление контекстов Azure и сохраненных учетных данных.
Каждая из этих команд поддерживает параметр Scope, который может принимать значение Process
для применения только к текущему выполняемому процессу. Например, чтобы убедиться, что только что созданные контексты не сохраняются после выхода из сеанса PowerShell:
Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000
Сведения о контексте и маркеры хранятся в каталоге $env:USERPROFILE\.Azure
в Windows и $HOME/.Azure
на других платформах. Конфиденциальные данные, такие как идентификаторы подписок и идентификаторы клиентов, могут по-прежнему подвергаться риску быть раскрыты в сохраняемой информации, через журналы или сохраненные контексты. Сведения о том, как очистить хранимую информацию, см. в статье Удаление контекстов Azure и сохраненных учетных данных.
Удаление контекстов Azure и сохраненных учетных данных
Чтобы очистить контексты и учетные данные Azure, выполните приведенные ниже действия.
Выйдите из учетной записи с помощью
Disconnect-AzAccount
. Вы можете выйти из любой учетной записи, исходя из самой учетной записи или её контекста.Disconnect-AzAccount # Disconnect active account Disconnect-AzAccount -Username '[email protected]' # Disconnect by account name Disconnect-AzAccount -ContextName MyContextName # Disconnect by context name $context = Get-AzContext Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
При отключении всегда удаляются сохраненные токены аутентификации и очищаются сохраненные контексты, связанные с отключенным пользователем или контекстом.
Используйте
Clear-AzContext
. Этот командлет всегда удаляет хранимые контексты и аутентификационные токены, а также завершает ваш сеанс.Удалите контекст с
Remove-AzContext
:Remove-AzContext -Name MyContextName # Remove by name Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
При удалении активного контекста вы отключаетесь от Azure и должны повторно выполнить аутентификацию с помощью
Connect-AzAccount
.
См. также
Azure PowerShell