Udostępnij za pośrednictwem


obiekty kontekstowe Azure PowerShell

Azure PowerShell używa obiektów kontekstu Azure PowerShell (konteksty Azure) do przechowywania informacji o subskrypcji i uwierzytelnianiu. Jeśli masz dostęp do wielu subskrypcji, konteksty Azure umożliwiają wybranie subskrypcji do uruchamiania poleceń cmdlet Azure PowerShell. konteksty 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ądzanie kontekstami Azure, a nie zarządzanie subskrypcjami ani kontami. Jeśli chcesz zarządzać użytkownikami, subskrypcjami, dzierżawami lub innymi informacjami o koncie, zobacz dokumentację Microsoft Entra ID. Aby dowiedzieć się więcej na temat używania kontekstów do uruchamiania zadań w tle lub równoległych, zobacz Uruchamianie poleceń cmdlet Azure PowerShell w zadaniach programu PowerShell po zapoznaniu się z kontekstami Azure.

Omówienie obiektów kontekstu Azure

Konteksty Azure to obiekty programu PowerShell reprezentujące aktywną subskrypcję w celu uruchamiania poleceń PowerShell oraz zawierają informacje uwierzytelniające potrzebne do nawiązania połączenia z chmurą Azure. W przypadku kontekstów Azure Azure PowerShell nie musi ponownie uwierzytelniać konta za każdym razem, gdy przełączasz subskrypcje. Kontekst Azure składa się z następujących elementów:

  • Konto, które zostało użyte do zalogowania się do Azure przy użyciu Connect-AzAccount. Konteksty Azure traktują użytkowników, identyfikatory aplikacji i główne usługi tak samo z perspektywy konta.
  • Aktywna subskrypcja to umowa serwisowa z Microsoft, do tworzenia i uruchamiania zasobów Azure, które są skojarzone z dzierżawcą. Dzierżawcy są często określani jako organizacje w dokumentacji lub podczas pracy z Microsoft Entra.
  • Odwołanie do pamięci podręcznej token przechowywanego tokenu uwierzytelniania na potrzeby uzyskiwania dostępu do chmury Azure. Ustawienia automatycznego zapisywania kontekstu określają miejsce przechowywania tokenu i czas jego przechowywania.

Aby uzyskać więcej informacji na temat tych terminów, zobacz Microsoft Entra Terminologia. Tokeny uwierzytelniania używane przez konteksty Azure są takie same jak inne przechowywane tokeny, które są częścią sesji trwałej.

Po zalogowaniu się przy użyciu Connect-AzAccount zostanie utworzony co najmniej jeden kontekst Azure dla subskrypcji domyślnej. Obiekt zwracany przez Connect-AzAccount jest domyślnym kontekstem Azure używanym w pozostałej części sesji programu PowerShell.

Pobieranie kontekstów Azure

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

Get-AzContext -ListAvailable

Możesz też pobrać kontekst według nazwy:

Get-AzContext -Name MyContextName

Nazwy kontekstowe mogą być inne niż nazwa 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żna

Dostępne konteksty Azure nie zawsze są twoimi dostępnymi subskrypcjami. Azure konteksty reprezentują tylko informacje przechowywane lokalnie. Subskrypcje można pobrać poleceniem cmdlet Get-AzSubscription.

Tworzenie nowego kontekstu Azure na podstawie informacji o subskrypcji

Polecenie cmdlet Set-AzContext służy do tworzenia i ustawiania nowych kontekstów Azure jako aktywnego kontekstu. Najprostszym sposobem utworzenia nowego kontekstu Azure jest użycie istniejących informacji o subskrypcji. Polecenie cmdlet Set-AzContext zostało zaprojektowane tak, aby pobrać obiekt wyjściowy z Get-AzSubscription jako wartość potokową i skonfigurować nowy kontekst Azure:

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

Możesz też w razie potrzeby podać nazwę lub identyfikator subskrypcji i identyfikator 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 Azure

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

Select-AzContext ma być używany tylko z istniejącymi kontekstami Azure i działa podobnie do używania Set-AzContext -Context, ale jest przeznaczony do użytku 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 Azure PowerShell, Set-AzContext i Select-AzContext obsługują Scope parametr, aby można było 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, można uruchomić polecenia Azure PowerShell z parametrem AzContext:

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

Innym podstawowym zastosowaniem kontekstów z poleceniami cmdlet Azure PowerShell jest uruchamianie poleceń w tle. Aby dowiedzieć się więcej na temat uruchamiania zadań programu PowerShell przy użyciu Azure PowerShell, zapoznaj się z Uruchamianie poleceń cmdlet Azure PowerShell w zadaniach programu PowerShell.

Zapisywanie kontekstów Azure w sesjach programu PowerShell

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

  • Zaloguj się za pomocą -Scope Process z Connect-AzAccount.

    Connect-AzAccount -Scope Process
    

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

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

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

  • Ręcznie zapisz konteksty za pomocą Save-AzContext, aby mogły być używane w przyszłych sesjach programu PowerShell, gdzie można je załadować za pomocą 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 zapisanych informacji kontekstowych. Aby usunąć przechowywane informacje, użyj polecenia cmdlet Clear-AzContext. Aby uzyskać więcej informacji na temat usuwania zapisanych kontekstów, zobacz Usuń konteksty Azure i przechowywane poświadczenia.

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 upewnić się, ż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 katalogu $env:USERPROFILE\.Azure na Windows i $HOME/.Azure na innych platformach. Poufne dane, takie jak identyfikatory subskrypcji i identyfikatory dzierżawy, mogą być nadal narażone na ujawnienie w przechowywanych danych, logach lub zapisanych kontekstach. Aby dowiedzieć się, jak wyczyścić przechowywane informacje, zobacz Usuń konteksty Azure i przechowywane poświadczenia.

Usuń konteksty Azure i przechowywane poświadczenia

Aby wyczyścić konteksty i poświadczenia 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łączanie zawsze usuwa przechowywane tokeny uwierzytelniania i czyści zapisane konteksty skojarzone z odłączonym użytkownikiem lub kontekstem.

  • Użyj Clear-AzContext. Ten cmdlet zawsze usuwa przechowywane konteksty i tokeny uwierzytelniania i wylogowuje Cię.

  • 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, rozłączysz się z Azure i musisz ponownie uwierzytelnić się przy użyciu Connect-AzAccount.

Zobacz także