Udostępnij za pośrednictwem


Obiekty kontekstu środowiska Azure PowerShell

Środowisko Azure PowerShell używa obiektów kontekstu środowiska Azure PowerShell (kontekstów platformy Azure) do przechowywania informacji o subskrypcji i uwierzytelnianiu. Jeśli masz dostęp do wielu subskrypcji, konteksty platformy Azure umożliwiają wybranie subskrypcji do uruchamiania poleceń cmdlet programu Azure PowerShell. Konteksty platformy Azure są również używane do przechowywania informacji logowania w wielu sesjach programu PowerShell i uruchamiania zadań w tle.

W tym artykule opisano zarządzania kontekstami platformy Azure, a nie zarządzanie subskrypcjami ani kontami. Jeśli chcesz zarządzać użytkownikami, subskrypcjami, dzierżawami lub innymi informacjami o koncie, zapoznaj się z dokumentacją identyfikatora Entra firmy Microsoft. Aby dowiedzieć się więcej o używaniu kontekstów do uruchamiania zadań w tle lub równoległych, zobacz Uruchamianie poleceń cmdlet programu Azure PowerShell w zadaniach programu PowerShell po zapoznaniu się z kontekstami platformy Azure.

Omówienie obiektów kontekstu platformy Azure

Konteksty platformy Azure to obiekty programu PowerShell reprezentujące aktywną subskrypcję do uruchamiania poleceń i informacje uwierzytelniania potrzebne do nawiązania połączenia z chmurą platformy Azure. Dzięki kontekstom platformy Azure środowisko Azure PowerShell nie musi ponownie uwierzytelniać Twojego konta za każdym razem, gdy przełączasz subskrypcje. Składniki kontekstu platformy Azure są następujące:

  • Konto, które zostało użyte do zalogowania się na platformie Azure przy użyciu polecenia Connect-AzAccount. Konteksty platformy Azure traktują użytkowników, identyfikatory aplikacji i jednostki usług tak samo z perspektywy konta.
  • Aktywna subskrypcja, umowa serwisowa z firmą Microsoft na tworzenie i uruchamianie zasobów platformy Azure, które są skojarzone z dzierżawą. Dzierżawy są często określane jako organizacje w dokumentacji lub podczas pracy z firmą Microsoft Entra.
  • Odwołanie do pamięci podręcznej tokenu, przechowywanego tokenu uwierzytelniania na potrzeby uzyskiwania dostępu do chmury platformy Azure. Ustawienia automatycznego zapisywania kontekstu określają miejsce przechowywania tokenu i czas ich utrwalania.

Aby uzyskać więcej informacji na temat tych terminów, zobacz Microsoft Entra Terminologia. Tokeny uwierzytelniania używane przez konteksty platformy Azure są takie same jak inne przechowywane tokeny będące składnikami sesji trwałej.

Po zalogowaniu się przy użyciu polecenia Connect-AzAccount dla domyślnej subskrypcji zostanie utworzony co najmniej jeden kontekst platformy Azure. Obiekt zwrócony przez polecenie Connect-AzAccount jest domyślnym kontekstem platformy Azure używanym przez pozostałą część sesji programu PowerShell.

Pobieranie kontekstów platformy Azure

Dostępne konteksty platformy Azure są pobierane za pomocą Get-AzContext polecenia cmdlet . Wyświetl listę dostępnych kontekstów za pomocą parametru ListAvailable :

Get-AzContext -ListAvailable

Lub pobierz kontekst według nazwy:

Get-AzContext -Name MyContextName

Nazwy kontekstów mogą być inne od nazwy skojarzonej subskrypcji. Aby określić nazwę kontekstu, użyj wartości właściwości Name , która nie jest wyświetlana domyślnie.

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

Ważne

Dostępne konteksty platformy Azure to nie zawsze są Twoje dostępne subskrypcje. Konteksty platformy Azure reprezentują tylko informacje przechowywane lokalnie. Subskrypcje można pobrać za Get-AzSubscription pomocą polecenia cmdlet .

Tworzenie nowego kontekstu platformy Azure na podstawie informacji o subskrypcji

Polecenie Set-AzContext cmdlet służy do tworzenia i ustawiania nowych kontekstów platformy Azure jako aktywnego kontekstu. Najprostszy sposób na utworzenie nowego kontekstu platformy Azure to użycie informacji o istniejącej subskrypcji. Polecenie Set-AzContext cmdlet jest przeznaczone do pobierania obiektu wyjściowego z Get-AzSubscription wartości potokowej i konfigurowania nowego kontekstu platformy Azure:

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

Lub podania w razie potrzeby identyfikatora albo nazwy subskrypcji oraz identyfikatora dzierżawy:

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

Jeśli parametr Name zostanie pominięty, nazwa i identyfikator subskrypcji są używane jako nazwa kontekstu w formacie Subscription Name (subscription-id).

Zmienianie aktywnego kontekstu platformy Azure

Zarówno Set-AzContext , jak i Select-AzContext można użyć do zmiany aktywnego kontekstu platformy Azure. Zgodnie z opisem w artykule Tworzenie nowego kontekstu platformy Azure tworzy nowy kontekst platformy Azure dla subskrypcji, Set-AzContext jeśli taki nie istnieje, a następnie przełącza aktywny kontekst na ten kontekst.

Select-AzContext Ma być używany tylko z istniejącymi kontekstami platformy Azure i działa podobnie do używania Set-AzContext -Contextelementu , ale jest przeznaczony do użycia z potokami:

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

Podobnie jak wiele innych poleceń zarządzania kontem i kontekstem w programie Azure PowerShell i Select-AzContext obsługuje parametr Scope, Set-AzContext dzięki czemu można kontrolować, jak długo kontekst jest aktywny. Zakres umożliwia zmianę aktywnego kontekstu pojedynczej sesji bez zmiany domyślnego:

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

Aby uniknąć przełączania kontekstów dla całej sesji programu PowerShell, polecenia programu Azure PowerShell z parametrem AzContext mogą być uruchamiane względem danego kontekstu:

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

Innym podstawowym zastosowaniem kontekstów z poleceniami cmdlet programu Azure PowerShell jest uruchamianie poleceń w tle. 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.

Zapisywanie kontekstów platformy Azure w różnych sesjach programu PowerShell

Domyślnie konteksty platformy Azure są zapisywane w celu używania ich między sesjami programu PowerShell. To zachowanie można zmienić na następujące sposoby:

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

    Connect-AzAccount -Scope Process
    

    Kontekst platformy Azure zwrócony w ramach tego logowania jest prawidłowy tylko dla bieżącej sesji i nie jest zapisywany automatycznie, niezależnie od ustawienia automatycznego zapisywania kontekstu programu Azure PowerShell.

  • Wyłącz automatyczne zapisywanie kontekstu w programie Azure PowerShell za Disable-AzContextAutosave pomocą polecenia cmdlet . Wyłączenie automatycznego zapisywania kontekstu nie powoduje wyczyszczenia żadnych przechowywanych tokenów. Aby dowiedzieć się, jak wyczyścić przechowywane informacje kontekstowe platformy Azure, zobacz Usuwanie kontekstów platformy Azure i przechowywanych poświadczeń.

  • Jawne włączanie automatycznego zapisywania kontekstu platformy Azure można włączyć za Enable-AzContextAutosave pomocą polecenia cmdlet . Po włączeniu automatycznego zapisywania konteksty użytkownika są przechowywane lokalnie na potrzeby późniejszych sesji programu PowerShell.

  • Ręcznie zapisz konteksty, Save-AzContext które mają być używane w przyszłych sesjach programu PowerShell, gdzie można je załadować za pomocą polecenia 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
    

Ostrzeżenie

Wyłączenie automatycznego zapisywania kontekstu nie powoduje wyczyszczenia żadnych zapisanych informacji o kontekście. Aby usunąć przechowywane informacje, użyj Clear-AzContext polecenia cmdlet . Aby uzyskać więcej informacji na temat usuwania zapisanych kontekstów, zobacz Usuwanie kontekstów platformy Azure i przechowywanych poświadczeń.

Każde z tych poleceń obsługuje parametr Scope , który może przyjąć wartość Process , aby zastosować tylko do bieżącego uruchomionego procesu. Aby na przykład zapewnić, że nowo utworzone konteksty nie są zapisywane po zakończeniu sesji programu PowerShell:

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

Informacje kontekstowe i tokeny są przechowywane w $env:USERPROFILE\.Azure katalogu w systemie Windows i $HOME/.Azure na innych platformach. Poufne informacje, takie jak identyfikatory subskrypcji i identyfikatory dzierżawy, mogą być nadal widoczne w przechowywanych informacjach, za pośrednictwem dzienników lub zapisanych kontekstów. Aby dowiedzieć się, jak wyczyścić przechowywane informacje, zobacz Usuwanie kontekstów platformy Azure i przechowywanych poświadczeń.

Usuwanie przechowywanych poświadczeń i kontekstów platformy Azure

Aby wyczyścić poświadczenia i konteksty platformy Azure:

  • Wyloguj się z konta przy użyciu polecenia Disconnect-AzAccount. Możesz wylogować się z dowolnego konta według konta lub kontekstu:

    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
    

    Rozłączenie zawsze powoduje usunięcie przechowywanych tokenów uwierzytelniania i wyczyszczenie zapisanych kontekstów skojarzonych z odłączonym użytkownikiem lub kontekstem.

  • Użyj witryny Clear-AzContext. To polecenie cmdlet zawsze usuwa przechowywane konteksty i tokeny uwierzytelniania i wy wylogowania.

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

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

    Jeśli usuniesz aktywny kontekst, odłączysz się od platformy Azure i musisz ponownie uwierzytelnić się przy użyciu polecenia Connect-AzAccount.

Zobacz też