Azure PowerShell-contextobjecten

Azure PowerShell maakt gebruik van Azure PowerShell-contextobjecten (Azure-contexten) om abonnements- en verificatiegegevens te bewaren. Als u meer dan één abonnement hebt, kunt u met Azure-contexten het abonnement selecteren waarin u Azure PowerShell-cmdlets wilt uitvoeren. Azure-contexten kunnen ook worden gebruikt om aanmeldingsgegevens te bewaren in meerdere PowerShell-sessies en om achtergrondtaken uit te voeren.

Dit artikel gaat over het beheer van Azure-contexten, niet het beheer van abonnementen of accounts. Als u gebruikers, abonnementen, tenants of andere accountgegevens wilt beheren, raadpleegt u de Microsoft Entra ID-documentatie . Zie Azure PowerShell-cmdlets uitvoeren in PowerShell-taken nadat u bekend bent met Azure-contexten voor meer informatie over het gebruik van contexten voor het uitvoeren van achtergrondtaken of parallelle taken.

Overzicht van Azure-contextobjecten

Azure-contexten zijn PowerShell-objecten die uw actieve abonnement vertegenwoordigen om opdrachten in uit te voeren, evenals de verificatiegegevens die nodig zijn om verbinding te maken met een Azure-cloud. Met Azure-contexten hoeft Azure PowerShell uw account niet telkens opnieuw te verifiëren wanneer u van abonnement wisselt. Een Azure-context bestaat uit:

  • Het account dat is gebruikt om mee aan te melden bij Azure via Connect-AzAccount. Vanuit accountperspectief behandelen Azure-contexten gebruikers, toepassings-id's en service-principals op dezelfde manier.
  • Het actieve abonnement, een serviceovereenkomst met Microsoft om Azure-resources, die zijn gekoppeld aan een tenant, te maken en uit te voeren. Tenants worden vaak aangeduid als organisaties in documentatie of bij het werken met Active Directory.
  • Een verwijzing naar een tokencache, een bewaarde verificatietoken voor toegang tot een Azure-cloud. Wanneer dit token wordt bewaard en voor hoelang het geldt, wordt bepaald door de instellingen voor automatisch opslaan van de context.

Zie Microsoft Entra-terminologie voor meer informatie over deze voorwaarden. Verificatietokens die worden gebruikt door Azure-contexten, zijn dezelfde als andere bewaarde tokens die deel zijn van een permanente sessie.

Wanneer u zich aanmeldt met Connect-AzAccount, wordt er minsten één Azure-context gemaakt voor uw standaardabonnement. Het object dat wordt geretourneerd door Connect-AzAccount is de standaard Azure-context die wordt gebruikt voor de rest van de PowerShell-sessie.

Azure-contexten ophalen

Beschikbare Azure-contexten worden opgehaald met de cmdlet Get-AzContext. Geef de beschikbare contexten weer met de parameter ListAvailable :

Get-AzContext -ListAvailable

Of zoek een context op naam:

Get-AzContext -Name 'mycontext'

Contextnamen verschillen mogelijk van de naam van het bijbehorende abonnement.

Belangrijk

De beschikbare Azure-contexten zijn niet altijd uw beschikbare abonnementen. Azure-contexten vertegenwoordigen alleen lokaal opgeslagen gegevens. U haalt uw abonnementen op met de cmdlet Get-AzSubscription.

Een nieuwe Azure-context maken van abonnementsgegevens

De cmdlet Set-AzContext wordt zowel gebruikt om nieuwe Azure-contexten te maken als deze in te stellen als de actieve context. De eenvoudigste manier om een nieuwe Azure-context te maken, is om de bestaande abonnementsgegevens te gebruiken. De cmdlet is ontworpen om het uitvoerobject van Get-AzSubscription te nemen als een waarde in een pijp en een nieuwe Azure-context te configureren:

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

Of geef indien nodig de abonnementsnaam of de id ervan en de tenant-id op:

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

Als de parameter Naam wordt weggelaten, worden de naam en id van het abonnement gebruikt als de contextnaam in de indeling Abonnementsnaam (subscription-id).

De actieve Azure-context wijzigen

Zowel Set-AzContext als Select-AzContext kunnen worden gebruikt om de actieve Azure-context te wijzigen. Zoals beschreven in Een nieuwe Azure-context maken, Set-AzContext maakt u een nieuwe Azure-context voor een abonnement als deze niet bestaat en schakelt u vervolgens de actieve context over naar die context.

Select-AzContext is bedoeld om alleen te worden gebruikt met bestaande Azure-contexten en werkt vergelijkbaar met het gebruik Set-AzContext -Context, maar is ontworpen voor gebruik met 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

Net als bij veel andere opdrachten voor account- en contextbeheer in Azure PowerShell Set-AzContext en Select-AzContext wordt de parameter Bereik ondersteund, zodat u kunt bepalen hoelang de context actief is. Met bereik kunt u de actieve context van één sessie wijzigen zonder de standaardinstelling te wijzigen:

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

Azure PowerShell-opdrachten met een AzContext-parameter kunnen worden uitgevoerd op basis van een bepaalde context om te voorkomen dat contexten worden overgeschakeld voor een hele PowerShell-sessie:

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

Het andere hoofdgebruik van contexten met Azure PowerShell-opdrachten is om opdrachten op de achtergrond uit te voeren. Raadpleeg Azure PowerShell-cmdlets uitvoeren in PowerShell-taken voor meer informatie over de uitvoering van PowerShell-taken met Azure PowerShell.

Azure-contexten opslaan in meerdere PowerShell-sessies

Standaard worden Azure-contexten bewaard voor gebruik tussen PowerShell-sessies. U kunt dit gedrag op de volgende manieren wijzigen:

  • Meld u aan met -Scope Process met Connect-AzAccount.

    Connect-AzAccount -Scope Process
    

    De Azure-context die als onderdeel van deze aanmelding wordt geretourneerd, is alleen geldig voor de huidige sessie en wordt niet automatisch opgeslagen, ongeacht de instelling voor automatisch opslaan van de Azure PowerShell-context.

  • Schakel automatisch opslaan van context uit in Azure PowerShell met de cmdlet Disable-AzContextAutosave . Als u automatisch opslaan uitschakelt, worden er geen opgeslagen tokens gewist. Raadpleeg Azure-contexten en -referenties wissen voor informatie over hoe u bewaarde Azure-contextgegevens wist.

  • U schakelt automatisch opslaan van Azure-contexten expliciet in met de cmdlet Enable-AzContextAutosave. Als automatisch opslaan is ingeschakeld, worden de contexten van een gebruiker lokaal opgeslagen voor latere PowerShell-sessies.

  • Sla contexten handmatig op met Save-AzContext, zodat deze in toekomstige PowerShell-sessies kunnen worden gebruikt en waar ze worden geladen met 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
    

Waarschuwing

Als u automatisch opslaan voor de context uitschakelt, wordt er geen contextinformatie gewist die was opgeslagen. Als u opgeslagen informatie wilt wissen, gebruikt u de cmdlet Clear-AzContext. Raadpleeg Contexten en referenties verwijderen voor meer informatie over de verwijdering van opgeslagen contexten.

Elk van deze opdrachten ondersteunt de bereikparameter , die alleen van Process toepassing kan zijn op het huidige actieve proces. Als u er bijvoorbeeld voor wilt zorgen dat nieuw gemaakte contexten niet worden opgeslagen nadat u een PowerShell-sessie afsluit:

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

Contextinformatie en tokens worden bewaard in de map $env:USERPROFILE\.Azure in Windows en in de map $HOME/.Azure op andere platforms. Gevoelige informatie, zoals abonnements-id's en tenant-id's, kan nog steeds worden weergegeven in opgeslagen gegevens, via logboeken of opgeslagen contexten. Raadpleeg het gedeelte Contexten en referenties verwijderen voor informatie over hoe u bewaarde informatie wist.

Azure-contexten en bewaarde referenties verwijderen

Als u Azure-contexten en -referenties wilt wissen:

  • Meld u af bij een account met Disconnect-AzAccount. U kunt u afmelden bij een account via een account of 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
    

    Als u zich afmeldt, worden bewaarde verificatietokens altijd verwijderd en worden opgeslagen contexten die bij de afgemelde gebruiker of context horen, gewist.

  • Gebruik Clear-AzContext. Met deze cmdlet worden altijd opgeslagen contexten, verificatietokens verwijderd en wordt u afgetekend.

  • Verwijder een context met Remove-AzContext:

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

    Als u de actieve context verwijdert, wordt de verbinding met Azure verbroken en moet u zich opnieuw verifiëren.Connect-AzAccount

Zie ook