Kontextové objekty Azure PowerShellu
Azure PowerShell používá kontextové objekty Azure PowerShellu (kontexty Azure) k uložení informací o předplatném a ověřování. Pokud máte přístup k několika předplatným, kontexty Azure umožňují vybrat předplatné, ve kterých se mají spouštět rutiny Azure PowerShellu. Kontexty Azure slouží také k ukládání přihlašovacích údajů napříč několika relacemi PowerShellu a ke spouštění úloh na pozadí.
Tento článek popisuje správu kontextů Azure, a ne správu předplatných nebo účtů. Pokud chcete spravovat uživatele, předplatná, tenanty nebo jiné informace o účtu, přečtěte si dokumentaci k Microsoft Entra ID . Další informace o používání kontextů pro spouštění úloh na pozadí nebo paralelních úlohách najdete v tématu Spouštění rutin Azure PowerShellu v úlohách PowerShellu po seznámení s kontexty Azure.
Přehled kontextových objektů Azure
Kontexty Azure jsou objekty PowerShellu představující vaše aktivní předplatné pro spouštění příkazů a ověřovací informace potřebné pro připojení ke cloudu Azure. V případě kontextů Azure PowerShell nemusí znovu ověřovat váš účet při každém přepnutí předplatného. Kontext Azure se skládá z těchto částí:
- Účet, který se použil k přihlášení k Azure pomocí
Connect-AzAccount
. Kontexty Azure považují uživatele, ID aplikací a instanční objekty z hlediska účtů za stejné. - Aktivní předplatné, smlouva o poskytování služeb s Microsoftem pro vytváření a spouštění prostředků Azure, které jsou přidružené k tenantovi. Tenanti se často označují jako organizace v dokumentaci nebo při práci s Microsoft Entra.
- Odkaz na mezipaměť tokenů, uložený ověřovací token pro přístup ke cloudu Azure. Nastavení automatického ukládání kontextu určuje, kde je token uložený a jak dlouho trvá.
Další informace o těchto termínech najdete v terminologii Microsoft Entra. Ověřovací tokeny používané kontexty Azure jsou stejné jako jiné uložené tokeny, které jsou součástí trvalé relace.
Když se přihlásíte pomocí Connect-AzAccount
, pro vaše výchozí předplatné se vytvoří aspoň jeden kontext Azure. Objekt vrácený Connect-AzAccount
je výchozím kontextem Azure, který se používá pro zbytek relace PowerShellu.
Získání kontextů Azure
Pomocí rutiny se načtou Get-AzContext
dostupné kontexty Azure. Uveďte dostupné kontexty pomocí parametru ListAvailable :
Get-AzContext -ListAvailable
Nebo můžete kontext získat pomocí názvu:
Get-AzContext -Name MyContextName
Názvy kontextů se mohou lišit od názvu přidruženého předplatného. Pokud chcete určit název kontextu, použijte hodnotu vlastnosti Name , která se ve výchozím nastavení nezobrazuje.
Get-AzContext -ListAvailable | Select-Object -Property *
Důležité
Dostupnými kontexty Azure nejsou vždycky vaše dostupná předplatná. Kontexty Azure představují pouze místně uložené informace. K získání předplatných můžete použít rutinu Get-AzSubscription
.
Vytvoření nového kontextu Azure z informací o předplatném
Rutina Set-AzContext
slouží k vytvoření a nastavení nových kontextů Azure jako aktivního kontextu. Nejjednodušší způsob, jak vytvořit nový kontext Azure, je použít stávající informace o předplatném. Rutina Set-AzContext
je navržená tak, aby převzala výstupní objekt jako Get-AzSubscription
hodnotu s kanálem a nakonfigurovala nový kontext Azure:
Get-AzSubscription -SubscriptionName MySubscriptionName |
Set-AzContext -Name MyContextName
Případně zadejte název nebo ID předplatného a ID tenanta:
Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000
Pokud parametr Name vynecháte, název a ID předplatného se použijí jako název kontextu ve formátu Subscription Name (subscription-id)
.
Změna aktivního kontextu Azure
K změně aktivního kontextu Azure je Select-AzContext
možné použít obojíSet-AzContext
. Jak je popsáno v tématu Vytvoření nového kontextu Azure, vytvoří nový kontext Azure pro předplatné, Set-AzContext
pokud neexistuje, a pak na tento kontext přepne aktivní kontext.
Select-AzContext
je určená k použití pouze s existujícími kontexty Azure a funguje podobně jako použití Set-AzContext -Context
, ale je určená pro použití s pipingem:
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
Stejně jako mnoho dalších příkazů pro správu účtů a kontextu v Azure PowerShellu a Select-AzContext
podporují parametr Scope, Set-AzContext
abyste mohli řídit, jak dlouho je kontext aktivní. Obor umožňuje změnit aktivní kontext jedné relace beze změny výchozího nastavení:
Get-AzContext -Name MyContextName | Select-AzContext -Scope Process
Aby nedocházelo k přepínání kontextů pro celou relaci PowerShellu, je možné spouštět příkazy Azure PowerShellu s parametrem AzContext v daném kontextu:
$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context
Druhým primárním použitím kontextů s rutinami Azure PowerShellu je spouštění příkazů na pozadí. Další informace o spouštění úloh PowerShellu pomocí Azure PowerShellu najdete v tématu Spouštění rutin Azure PowerShellu v úlohách PowerShellu.
Uložení kontextů Azure napříč relacemi PowerShellu
Ve výchozím nastavení se kontexty Azure ukládají, aby se daly využívat v různých relacích PowerShellu. Toto chování můžete změnit následujícími způsoby:
Přihlaste se pomocí
-Scope Process
sConnect-AzAccount
:Connect-AzAccount -Scope Process
Kontext Azure vrácený jako součást tohoto přihlášení je platný jenom pro aktuální relaci a neukládají se automaticky bez ohledu na nastavení automatického ukládání kontextu Azure PowerShellu.
Pomocí rutiny zakažte automatické ukládání kontextu v Azure PowerShellu
Disable-AzContextAutosave
. Zákaz automatického ukládání kontextu nevymaže žádné uložené tokeny. Informace o vymazání uložených informací o kontextu Azure najdete v tématu Odebrání kontextů Azure a uložených přihlašovacích údajů.Pomocí rutiny je možné explicitně povolit
Enable-AzContextAutosave
automatické ukládání kontextu Azure. S povoleným automatickým ukládáním se kontexty uživatele ukládají místně pro pozdější relace PowerShellu.Ručně uložte kontexty, které
Save-AzContext
se mají použít v budoucích relacích PowerShellu, kde je můžete načíst: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
Upozorňující
Zákaz automatického ukládání kontextu nevymaže žádné uložené informace o kontextech. K odebrání uložených informací použijte rutinu Clear-AzContext
. Další informace o odebrání uložených kontextů najdete v tématu Odebrání kontextů Azure a uložených přihlašovacích údajů.
Každý z těchto příkazů podporuje parametr Scope , který může mít hodnotu Process
, která se vztahuje pouze na aktuální spuštěný proces. Pokud chcete například zajistit, aby nově vytvořené kontexty nebyly po ukončení relace PowerShellu uložené:
Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000
Kontextové informace a tokeny jsou uložené v adresáři ve $env:USERPROFILE\.Azure
Windows a $HOME/.Azure
na jiných platformách. Citlivé informace, jako jsou ID předplatného a ID tenanta, se můžou dál zobrazovat v uložených informacích, prostřednictvím protokolů nebo uložených kontextů. Informace o vymazání uložených informací najdete v tématu Odebrání kontextu Azure a uložených přihlašovacích údajů.
Odebrání uložených přihlašovacích údajů a kontextů Azure
Pokud chcete vymazat přihlašovací údaje a kontexty Azure:
Odhlaste se z účtu pomocí
Disconnect-AzAccount
. Můžete se odhlásit z libovolného účtu, a to buď podle účtu, nebo podle kontextu: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
Odpojení vždycky odebere uložené ověřovací tokeny a vymaže uložené kontexty přidružené k odpojenému uživateli nebo kontextu.
Použijte
Clear-AzContext
. Tato rutina vždy odebere uložené kontexty a ověřovací tokeny a odhlásí vás.Odeberte kontext pomocí
Remove-AzContext
:Remove-AzContext -Name MyContextName # Remove by name Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
Pokud odeberete aktivní kontext, odpojíte se od Azure a potřebujete znovu provést ověření pomocí
Connect-AzAccount
.
Viz také
Azure PowerShell