Partilhar via


Objetos de contexto do Azure PowerShell

Azure PowerShell utiliza Azure PowerShell objetos de contexto (Azure contextos) para armazenar informações de subscrição e autenticação. Se tiver acesso a múltiplas subscrições, os contextos do Azure permitem-lhe selecionar a subscrição para executar os cmdlets do Azure PowerShell. Os contextos do Azure também são usados para armazenar informação de login em múltiplas sessões PowerShell e executar tarefas em segundo plano.

Este artigo aborda a gestão de contextos do Azure, não a gestão de subscrições ou contas. Se quiser gerir utilizadores, subscrições, inquilinos ou outras informações da conta, consulte a documentação Microsoft Entra ID. Para aprender sobre o uso de contextos para executar tarefas em segundo plano ou paralelas, veja Executar cmdlets do Azure PowerShell em PowerShell Jobs depois de se familiarizar com os contextos Azure.

Visão geral dos objetos de contexto do Azure

Os contextos do Azure são objetos PowerShell que representam a sua subscrição ativa para executar comandos e a informação de autenticação necessária para se ligar a uma nuvem Azure. Com contextos do Azure, o Azure PowerShell não precisa de reautenticar a sua conta sempre que muda de subscrição. Um contexto Azure consiste em:

  • A conta que foi usada para iniciar sessão no Azure com Connect-AzAccount. Os contextos do Azure tratam os utilizadores, IDs de aplicação e princípios de serviço da mesma forma do ponto de vista da conta.
  • A subscrição ativa, um acordo de serviço com a Microsoft para criar e executar recursos Azure, que estão associados a um locatário. Os locatários são frequentemente referidos como organizações na documentação ou quando trabalham com Microsoft Entra.
  • Uma referência a um cache token, um token de autenticação armazenado para aceder a uma nuvem Azure. As configurações de salvamento automático de contexto determinam onde o token é armazenado e por quanto tempo ele persiste.

Para mais informações sobre estes termos, consulte Microsoft Entra Terminologia. Os tokens de autenticação usados pelos contextos do Azure são os mesmos que outros tokens armazenados que fazem parte de uma sessão persistente.

Quando inicias sessão com Connect-AzAccount, pelo menos um contexto de Azure é criado para a tua subscrição predefinida. O objeto devolvido por Connect-AzAccount é o contexto Azure padrão usado para o resto da sessão PowerShell.

Obter contextos do Azure

Os contextos Azure disponíveis são recuperados com o cmdlet Get-AzContext. Liste os contextos disponíveis com o parâmetro ListAvailable :

Get-AzContext -ListAvailable

Ou obtenha um contexto através do nome:

Get-AzContext -Name MyContextName

Os nomes de contexto podem ser diferentes do nome da assinatura associada. Para determinar o nome do contexto, use o valor da propriedade Name , que não é exibida por padrão.

Get-AzContext -ListAvailable | Select-Object -Property *

Importante

Os contextos disponíveis no Azure nem sempre correspondem às suas subscrições disponíveis. Os contextos do Azure representam apenas informação armazenada localmente. Você pode obter suas assinaturas com o cmdlet.

Crie um novo contexto Azure a partir das informações de subscrição

O cmdlet Set-AzContext é usado para criar e definir novos contextos de Azure como contexto ativo. A forma mais fácil de criar um novo contexto do Azure é usar a informação de subscrição existente. O cmdlet Set-AzContext foi concebido para tomar o objeto de saída de Get-AzSubscription como um valor canalizado e configurar um novo contexto Azure:

Get-AzSubscription -SubscriptionName MySubscriptionName |
  Set-AzContext -Name MyContextName

Ou forneça o nome ou ID da subscrição e o ID do inquilino, se necessário:

Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000

Se o parâmetro Name for omitido, o nome e a ID da assinatura serão usados como o nome do contexto no formato .

Alterar o contexto ativo do Azure

Tanto Set-AzContext como Select-AzContext podem ser usados para alterar o contexto ativo Azure. Como descrito em Criar um novo contexto de Azure, Set-AzContext cria um novo contexto de Azure para uma subscrição se não existir e depois muda o contexto ativo para esse.

Select-AzContext destina-se a ser usado apenas com contextos de Azure existentes e funciona de forma semelhante ao uso de Set-AzContext -Context, mas foi concebido para uso com tubagens:

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

Tal como muitos outros comandos de gestão de contas e contexto no Azure PowerShell, Set-AzContext e Select-AzContext suportam o parâmetro Scope para que possas controlar quanto tempo o contexto está ativo. O escopo permite alterar o contexto ativo de uma única sessão sem alterar o padrão:

Get-AzContext -Name MyContextName | Select-AzContext -Scope Process

Para evitar mudar de contexto durante toda uma sessão PowerShell, Azure PowerShell comandos com um parâmetro AzContext podem ser executados contra um dado contexto:

$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context

O outro uso principal dos contextos com cmdlets do Azure PowerShell é executar comandos em segundo plano. Para saber mais sobre como executar trabalhos do PowerShell usando Azure PowerShell, veja Executar cmdlets do Azure PowerShell em trabalhos do PowerShell.

Guardar contextos Azure entre sessões PowerShell

Por padrão, os contextos do Azure são guardados para utilização entre sessões PowerShell. Você pode alterar esse comportamento das seguintes maneiras:

  • Entre usando o .

    Connect-AzAccount -Scope Process
    

    O contexto Azure devolvido como parte deste login é válido para a sessão atual c0 e não é guardado automaticamente, independentemente da configuração de autosave do contexto Azure PowerShell.

  • Desativa a gravação automática do contexto em Azure PowerShell com o cmdlet Disable-AzContextAutosave. A desativação do salvamento automático de contexto não limpa nenhum token armazenado. Para aprender a limpar informação de contexto Azure armazenada, veja Remover contextos de Azure e credenciais armazenadas.

  • Para ativar explicitamente o autosave de contexto do Azure, pode ser usado o cmdlet Enable-AzContextAutosave. Com o salvamento automático habilitado, os contextos de um usuário são armazenados localmente para sessões posteriores do PowerShell.

  • Salve manualmente contextos com para serem usados em futuras sessões do PowerShell, onde eles podem ser carregados com :

    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
    

Advertência

A desativação do salvamento automático de contexto não limpa nenhuma informação de contexto armazenada que foi salva. Para remover informações armazenadas, use o cmdlet. Para mais informações sobre a remoção de contextos guardados, veja remover contextos Azure e credenciais armazenadas.

Cada um desses comandos suporta o parâmetro Scope , que pode ter um valor de para se aplicar apenas ao processo em execução atual. Por exemplo, para garantir que os contextos recém-criados não sejam salvos depois de sair de uma sessão do PowerShell:

Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000

A informação de contexto e os tokens são armazenados no diretório $env:USERPROFILE\.Azure no Windows e no $HOME/.Azure noutras plataformas. Informações confidenciais, como IDs de assinatura e IDs de locatário, ainda podem ser expostas em informações armazenadas, por meio de logs ou contextos salvos. Para saber como apagar informação armazenada, consulte Remover contextos Azure e credenciais armazenadas.

Remover contextos do Azure e credenciais armazenadas

Para limpar os contextos e credenciais do Azure:

  • Sair da conta com o . Você pode sair de qualquer conta por conta ou contexto:

    Disconnect-AzAccount # Disconnect active account
    Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name
    Disconnect-AzAccount -ContextName MyContextName # Disconnect by context name
    
    $context = Get-AzContext
    Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
    

    A desconexão sempre remove os tokens de autenticação armazenados e limpa os contextos salvos associados ao usuário ou contexto desconectado.

  • Utilize . Esse cmdlet sempre remove contextos armazenados e tokens de autenticação e desconecta você.

  • Remover um contexto do seguinte modo:

    Remove-AzContext -Name MyContextName # Remove by name
    Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
    

    Se remover o contexto ativo, fica desligado de Azure e precisa de autenticar novamente com Connect-AzAccount.

Consulte também

  • Connect-AzAccount
  • Desconectar-AzAccount
  • Get-AzContext
  • Set-AzContext
  • Salvar-AzContext
  • Select-AzContext
  • Import-AzContext
  • Clear-AzContext
  • Remove-AzContext
  • Enable-AzContextAutosave
  • Disable-AzContextAutosave
  • Get-AzSubscription