Obiekty kontekstu środowiska Azure PowerShellAzure PowerShell context objects

Środowisko Azure PowerShell używa obiektów kontekstu środowiska Azure PowerShell (kontekstów platformy Azure) do przechowywania informacji o subskrypcji i uwierzytelnianiu.Azure PowerShell uses Azure PowerShell context objects (Azure contexts) to hold subscription and authentication information. Jeśli masz więcej niż jedną subskrypcję, konteksty platformy Azure umożliwiają wybranie subskrypcji, na której mają być uruchamiane polecenia cmdlet środowiska Azure PowerShell.If you have more than one subscription, Azure contexts let you select the subscription to run Azure PowerShell cmdlets on. Konteksty platformy Azure są również używane do przechowywania informacji logowania w wielu sesjach programu PowerShell i uruchamiania zadań w tle.Azure contexts are also used to store sign-in information across multiple PowerShell sessions and run background tasks.

W tym artykule opisano zarządzania kontekstami platformy Azure, a nie zarządzanie subskrypcjami ani kontami.This article covers managing Azure contexts, not the management of subscriptions or accounts. Jeśli chcesz zarządzać użytkownikami, subskrypcjami, dzierżawami lub innymi informacjami o koncie, zapoznaj się z dokumentacją usługi Azure Active Directory.If you're looking to manage users, subscriptions, tenants, or other account information, see the Azure Active Directory documentation. Aby dowiedzieć się więcej o używaniu kontekstów do uruchamiania zadań w tle lub równolegle, zobacz Używanie poleceń cmdlet środowiska Azure PowerShell w zadaniach programu PowerShell, gdy już zapoznasz się z kontekstami platformy Azure.To learn about using contexts for running background or parallel tasks, see Use Azure PowerShell cmdlets in PowerShell jobs after becoming familiar with Azure contexts.

Omówienie obiektów kontekstu platformy AzureOverview of Azure context objects

Konteksty platformy Azure to obiekty programu PowerShell odzwierciedlające aktywną subskrypcję, w której są uruchamiane polecenia, oraz informacje uwierzytelniania wymagane do nawiązywania połączenia z chmurą platformy Azure.Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. Dzięki kontekstom platformy Azure środowisko Azure PowerShell nie musi ponownie uwierzytelniać Twojego konta za każdym razem, gdy przełączasz subskrypcje.With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. Składniki kontekstu platformy Azure są następujące:An Azure context consists of:

  • Konto użyte do zalogowania się do platformy Azure za pomocą polecenia Connect-AzAccount.The account that was used to sign in to Azure with Connect-AzAccount. Konteksty platformy Azure traktują użytkowników, identyfikatory aplikacji i jednostki usług tak samo z perspektywy konta.Azure contexts treat users, application IDs, and service principals the same from an account perspective.
  • Aktywna subskrypcja, umowa serwisowa z firmą Microsoft na tworzenie i uruchamianie zasobów platformy Azure, które są skojarzone z dzierżawą.The active subscription, a service agreement with Microsoft to create and run Azure resources, which are associated with a tenant. Dzierżawy są często określane jako organizacje w dokumentacji lub podczas pracy z usługą Active Directory.Tenants are often referred to as organizations in documentation or when working with Active Directory.
  • Odwołanie do pamięci podręcznej tokenu, przechowywanego tokenu uwierzytelniania na potrzeby uzyskiwania dostępu do chmury platformy Azure.A reference to a token cache, a stored authentication token for accessing an Azure cloud. Miejsce, w którym ten token jest przechowywany, oraz czas jego trwania jest określany przez ustawienia automatycznego zapisywania kontekstu.Where this token is stored and how long it persists for is determined by the context autosave settings.

Aby uzyskać więcej informacji o tych terminach, zobacz Terminologia usługi Azure Active Directory.For more information on these terms, see Azure Active Directory Terminology. Tokeny uwierzytelniania używane przez konteksty platformy Azure są takie same jak inne przechowywane tokeny będące składnikami sesji trwałej.Authentication tokens used by Azure contexts are the same as other stored tokens that are part of a persistent session.

Po zalogowaniu się przy użyciu polecenia Connect-AzAccount dla domyślnej subskrypcji zostanie utworzony co najmniej jeden kontekst platformy Azure.When you sign in with Connect-AzAccount, at least one Azure context is created for your default subscription. Obiekt zwrócony przez polecenie Connect-AzAccount jest domyślnym kontekstem platformy Azure używanym przez pozostałą część sesji programu PowerShell.The object returned by Connect-AzAccount is the default Azure context used for the rest of the PowerShell session.

Pobieranie kontekstów platformy AzureGet Azure contexts

Dostępne konteksty platformy Azure są pobierane za pomocą polecenia cmdlet Get-AzContext.Available Azure contexts are retrieved with the Get-AzContext cmdlet. Wyświetl listę wszystkich dostępnych kontekstów, używając parametru -ListAvailable:List all of the available contexts with -ListAvailable:

Get-AzContext -ListAvailable

Lub pobierz kontekst według nazwy:Or get a context by name:

$context = Get-Context -Name "mycontext"

Nazwy kontekstów mogą być inne od nazwy skojarzonej subskrypcji.Context names may be different from the name of the associated subscription.

Ważne

Dostępne konteksty platformy Azure to nie zawsze są Twoje dostępne subskrypcje.The available Azure contexts aren't always your available subscriptions. Konteksty platformy Azure odzwierciedlają tylko lokalnie przechowywane informacje.Azure contexts only represent locally-stored information. Subskrypcje można pobrać przy użyciu polecenia cmdlet Get-AzSubscription.You can get your subscriptions with the Get-AzSubscription cmdlet.

Tworzenie nowego kontekstu platformy Azure na podstawie informacji o subskrypcjiCreate a new Azure context from subscription information

Polecenie cmdlet Set-AzContext służy zarówno do tworzenia nowych kontekstów platformy Azure, jak i ustawiania ich jako aktywnego kontekstu.The Set-AzContext cmdlet is used to both create new Azure contexts and set them as the active context. Najprostszy sposób na utworzenie nowego kontekstu platformy Azure to użycie informacji o istniejącej subskrypcji.The easiest way to create a new Azure context is to use existing subscription information. Polecenie cmdlet ma za zadanie pobranie obiektu wyjściowego z polecenia Get-AzSubscription jako wartości w postaci potoku i skonfigurowanie nowego kontekstu platformy Azure:The cmdlet is designed to take the output object from Get-AzSubscription as a piped value and configure a new Azure context:

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

Lub podania w razie potrzeby identyfikatora albo nazwy subskrypcji oraz identyfikatora dzierżawy:Or give the subscription name or ID and the tenant ID if necessary:

Set-AzContext -Name 'MyContextName' -Subscription 'MySubscriptionName' -Tenant '.......'

Jeśli argument -Name zostanie pominięty, jako nazwa kontekstu będzie używany identyfikator i nazwa subskrypcji w formacie Subscription Name (subscription-id).If the -Name argument is omitted, then the subscription's name and ID are used as the context name in the format Subscription Name (subscription-id).

Zmienianie aktywnego kontekstu platformy AzureChange the active Azure context

Aby zmienić aktywny kontekst platformy Azure, można użyć zarówno polecenia Set-AzContext, jak i Select-AzContext.Both Set-AzContext and Select-AzContext can be used to change the active Azure context. Tak jak opisano w sekcji Tworzenie nowego kontekstu platformy Azure, polecenie Set-AzContext tworzy nowy kontekst platformy Azure dla subskrypcji, jeśli taki nie istnieje, a następnie przełącza się na używanie tego kontekstu jako aktywnego.As described in Create a new Azure context, Set-AzContext creates a new Azure context for a subscription if one doesn't exist, and then switches to use that context as the active one.

Polecenie Select-AzContext powinno być używane tylko z istniejącymi kontekstami platformy Azure i działa podobnie do stosowania polecenia Set-AzContext -Context, ale jest przeznaczone do używania z potokowaniem:Select-AzContext is meant to be used with existing Azure contexts only and works similarly to using Set-AzContext -Context, but is designed for use with piping:

Set-AzContext -Context $(Get-AzContext -Name "mycontext") # Set a context with an inline Azure context object
Get-AzContext -Name "mycontext" | Select-AzContext # Set a context with a piped Azure context object

Podobnie jak wiele innych poleceń zarządzania kontem i kontekstem w środowisku Azure PowerShell, polecenia Set-AzContext i Select-AzContext obsługują argument -Scope, co pozwala kontrolować czas aktywności kontekstu.Like many other account and context management commands in Azure PowerShell, Set-AzContext and Select-AzContext support the -Scope argument so that you can control how long the context is active. Argument -Scope pozwala na zmianę aktywnego kontekstu pojedynczej sesji bez zmieniania domyślnego:-Scope lets you change a single session's active context without changing the default:

Get-AzContext -Name "mycontext" | Select-AzContext -Scope Process

Aby uniknąć przełączania kontekstów dla całej sesji programu PowerShell, wszystkie polecenia środowiska Azure PowerShell można uruchamiać względem danego kontekstu z argumentem -AzContext:To avoid switching contexts for a whole PowerShell session, all Azure PowerShell commands can be run against a given context with the -AzContext argument:

$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context

Innym głównym zastosowaniem kontekstów z poleceniami cmdlet środowiska Azure PowerShell jest uruchamianie poleceń w tle.The other main use of contexts with Azure PowerShell cmdlets is to run background commands. Aby dowiedzieć się więcej o uruchamianiu zadań programu PowerShell przy użyciu środowiska Azure PowerShell, zobacz Uruchamianie poleceń cmdlet środowiska Azure PowerShell w zadaniach programu PowerShell.To learn more about running PowerShell Jobs using Azure PowerShell, see Run Azure PowerShell cmdlets in PowerShell Jobs.

Zapisywanie kontekstów platformy Azure w różnych sesjach programu PowerShellSave Azure contexts across PowerShell sessions

Domyślnie konteksty platformy Azure są zapisywane w celu używania ich między sesjami programu PowerShell.By default, Azure contexts are saved for use between PowerShell sessions. To zachowanie można zmienić w następujący sposób:You change this behavior in the following ways:

  • Zaloguj się przy użyciu polecenia -Scope Process z parametrem Connect-AzAccount.Sign in using -Scope Process with Connect-AzAccount.

    Connect-AzAccount -Scope Process
    

    Kontekst platformy Azure zwrócony jako część tego logowania jest prawidłowy tylko dla bieżącej sesji i nie zostanie automatycznie zapisany, niezależnie od ustawienia automatycznego zapisywania kontekstu środowiska Azure PowerShell.The Azure context returned as part of this sign in is valid for the current session only and will not be automatically saved, regardless of the Azure PowerShell context autosave setting.

  • Wyłącz automatyczne zapisywanie kontekstu środowiska Azure PowerShell przy użyciu polecenia cmdlet Disable-AzContextAutosave.Disable AzurePowershell's context autosave with the Disable-AzContextAutosave cmdlet. Wyłączenie automatycznego zapisywania kontekstu nie powoduje wyczyszczenia żadnych przechowywanych tokenów.Disabling context autosave doesn't clear any stored tokens. Aby dowiedzieć się, jak wyczyścić przechowywane informacje o kontekście platformy Azure, zobacz Usuwanie poświadczeń i kontekstów platformy Azure.To learn how to clear stored Azure context information, see Remove Azure contexts and credentials.

  • Jawnie włącz automatyczne zapisywanie kontekstu platformy Azure przy użyciu polecenia cmdlet Enable-AzContextAutosave.Explicitly enable Azure context autosave can be enabled with the Enable-AzContextAutosave cmdlet. Gdy automatyczne zapisywanie jest włączone, wszystkie konteksty użytkownika są przechowywane lokalnie na potrzeby przyszłych sesji programu PowerShell.With autosave enabled, all of a user's contexts are stored locally for later PowerShell sessions.

  • Za pomocą polecenia Save-AzContext ręcznie zapisz konteksty do używania w przyszłych sesjach programu PowerShell, w których mogą być one ładowane za pomocą polecenia Import-AzContext:Manually save contexts with Save-AzContext to be used in future PowerShell sessions, where they can be loaded with Import-AzContext:

    Save-AzContext -Path current-context.json # Save the current context
    Save-AzContext -Profile $profileObject -Path other-context.json # Save a context object
    Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
    

Ostrzeżenie

Wyłączenie automatycznego zapisywania kontekstu nie powoduje wyczyszczenia żadnych zapisanych informacji o kontekście.Disabling context autosave doesn't clear any stored context information that was saved. Aby usunąć przechowywane informacje, użyj polecenia cmdlet Clear-AzContext.To remove stored information, use the Clear-AzContext cmdlet. Aby uzyskać więcej informacji na temat usuwania zapisanych kontekstów, zobacz sekcję Usuwanie kontekstów i poświadczeń.For more on removing saved contexts, see Remove contexts and credentials.

Każde z tych poleceń obsługuje parametr -Scope, który może przyjmować wartość Process do stosowania tylko do obecnie uruchomionego procesu.Each of these commands supports the -Scope parameter, which can take a value of Process to only apply to the current running process. Aby na przykład zapewnić, że nowo utworzone konteksty nie są zapisywane po zakończeniu sesji programu PowerShell:For example, to ensure that newly created contexts aren't saved after exiting a PowerShell session:

Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription "sub-id" -Tenant "other-tenant"

Informacje o kontekście i tokeny są przechowywane w katalogu $env:USERPROFILE\.Azure w systemie Windows oraz w katalogu $HOME/.Azure na innych platformach.Context information and tokens are stored in the $env:USERPROFILE\.Azure directory on Windows, and on $HOME/.Azure on other platforms. Informacje poufne, takie jak identyfikatory subskrypcji i identyfikatory dzierżawy, mogą być nadal ujawnione w przechowywanych informacjach za pośrednictwem dzienników lub zapisanych kontekstów.Sensitive information such as subscription IDs and tenant IDs may still be exposed in stored information, through logs or saved contexts. Aby dowiedzieć się, jak wyczyścić przechowywane informacje, zobacz sekcję Usuwanie kontekstów i poświadczeń.To learn how to clear stored information, see the Remove contexts and credentials section.

Usuwanie przechowywanych poświadczeń i kontekstów platformy AzureRemove Azure contexts and stored credentials

Aby wyczyścić poświadczenia i konteksty platformy Azure:To clear Azure contexts and credentials:

  • Wyloguj się z konta przy użyciu polecenia Disconnect-AzAccount.Sign out of an account with Disconnect-AzAccount. Możesz wylogować się z dowolnego konta według konta lub kontekstu:You can sign out of any account either by account or context:

    Disconnect-AzAccount # Disconnect active account 
    Disconnect-AzAccount -Username "user@contoso.com" # Disconnect by account name
    
    Disconnect-AzAccount -ContextName "subscription2" # Disconnect by context name
    Disconnect-AzAccount -AzureContext $contextObject # Disconnect using context object information
    

    Rozłączenie zawsze powoduje usunięcie przechowywanych tokenów uwierzytelniania i wyczyszczenie zapisanych kontekstów skojarzonych z odłączonym użytkownikiem lub kontekstem.Disconnecting always removes stored authentication tokens and clears saved contexts associated with the disconnected user or context.

  • Użyj polecenia Clear-AzContext.Use Clear-AzContext. To polecenie cmdlet zawsze gwarantuje usunięcie przechowywanych kontekstów i tokenów uwierzytelniania, a także wyloguje Cię.This cmdlet is guaranteed to always remove stored contexts and authentication tokens, and will also sign you out.

  • Usuń kontekst za pomocą polecenia Remove-AzContext:Remove a context with Remove-AzContext:

    Remove-AzContext -Name "mycontext" # Remove by name
    Get-AzContext -Name "mycontext" | Remove-AzContext # Remove by piping Azure context object
    

    Jeśli usuniesz aktywny kontekst, nastąpi odłączenie od platformy Azure i będzie konieczne ponowne uwierzytelnienie przy użyciu polecenia Connect-AzAccount.If you remove the active context, you will be disconnected from Azure and need to reauthenticate with Connect-AzAccount.

Zobacz teżSee also