Delen via


Azure PowerShell-contextobjecten

Azure PowerShell maakt gebruik van Azure PowerShell-contextobjecten (Azure-contexten) om abonnements- en verificatiegegevens te bewaren. Als u toegang hebt tot meerdere abonnementen, kunt u met Azure-contexten het abonnement selecteren waarop Azure PowerShell-cmdlets moeten worden uitgevoerd. 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 uit te voeren voor en 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 u aan te melden bij Azure met 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 Microsoft Entra.
  • Een verwijzing naar een tokencache, een bewaarde verificatietoken voor toegang tot een Azure-cloud. De instellingen voor automatisch opslaan van de context bepalen waar het token wordt opgeslagen en hoe lang het blijft bestaan.

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 Get-AzContext cmdlet. Geef de beschikbare contexten weer met de parameter ListAvailable :

Get-AzContext -ListAvailable

Of zoek een context op naam:

Get-AzContext -Name MyContextName

Contextnamen verschillen mogelijk van de naam van het bijbehorende abonnement. Als u de contextnaam wilt bepalen, gebruikt u de waarde van de eigenschap Naam , die niet standaard wordt weergegeven.

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

Belangrijk

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

Een nieuwe Azure-context maken van abonnementsgegevens

De Set-AzContext cmdlet wordt gebruikt om nieuwe Azure-contexten te maken en 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 Set-AzContext cmdlet is ontworpen om het uitvoerobject Get-AzSubscription als een piped-waarde te gebruiken 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 Name wordt weggelaten, worden de naam en id van het abonnement gebruikt als de contextnaam in de indeling Subscription Name (subscription-id).

De actieve Azure-context wijzigen

Beide Set-AzContext en 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 wordt de actieve context vervolgens naar die context overgeschakeld.

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 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

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 MyContextName | Select-AzContext -Scope Process

Als u wilt voorkomen dat contexten worden overgeschakeld voor een volledige PowerShell-sessie, kunnen Azure PowerShell-opdrachten met een AzContext-parameter worden uitgevoerd op basis van een bepaalde context:

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

Het andere primaire gebruik van contexten met Azure PowerShell-cmdlets is het uitvoeren van achtergrondopdrachten. 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 Disable-AzContextAutosave cmdlet. Als u automatisch opslaan uitschakelt, worden er geen opgeslagen tokens gewist. Zie Azure-contexten en opgeslagen referenties verwijderen voor meer informatie over het wissen van opgeslagen Azure-contextinformatie.

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

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

Waarschuwing

Als u automatisch opslaan voor de context uitschakelt, wordt er geen contextinformatie gewist die was opgeslagen. Gebruik de Clear-AzContext cmdlet om opgeslagen gegevens te verwijderen. Zie Azure-contexten en opgeslagen referenties verwijderen voor meer informatie over het verwijderen 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
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000

Contextinformatie en tokens worden opgeslagen in de $env:USERPROFILE\.Azure map in Windows en $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. Zie Azure-contexten en opgeslagen referenties verwijderen voor meer informatie over het wissen van opgeslagen gegevens.

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 MyContextName # Disconnect by context name
    
    $context = Get-AzContext
    Disconnect-AzAccount -AzureContext $context # 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 en verificatietokens verwijderd en wordt u afgetekend.

  • Een context verwijderen met Remove-AzContext:

    Remove-AzContext -Name MyContextName # Remove by name
    Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an 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