Oggetti contesto di Azure PowerShell
Azure PowerShell usa gli oggetti contesto di Azure PowerShell (contesti di Azure) per memorizzare informazioni su sottoscrizioni e autenticazione. Nel caso di più sottoscrizioni, i contesti di Azure consentono di selezionare quella in cui eseguire i cmdlet di Azure PowerShell. I contesti di Azure possono anche essere usati per archiviare informazioni di accesso tra più sessioni di PowerShell e per eseguire attività in background.
Questo articolo riguarda i contesti di Azure, non la gestione di sottoscrizioni o account. Se si vogliono gestire utenti, sottoscrizioni, tenant o altre informazioni sull'account, vedere la documentazione relativa all'ID di Microsoft Entra. Per informazioni sull'uso dei contesti per l'esecuzione di attività in background o parallele, vedere Eseguire i cmdlet di Azure PowerShell nei processi di PowerShell dopo aver acquisito familiarità con i contesti di Azure.
Panoramica degli oggetti contesto di Azure
I contesti di Azure sono oggetti di PowerShell che rappresentano la sottoscrizione attiva in cui eseguire i comandi e le informazioni di autenticazione necessarie per connettere Azure al cloud. Con i contesti di Azure, non è necessario ripetere l'autenticazione dell'account in Azure PowerShell ogni volta che si cambia sottoscrizione. Un contesto di Azure è costituito da:
- L'account usato per accedere ad Azure con Connect-AzAccount. I contesti di Azure considerano gli utenti, gli ID applicazione e le entità servizio allo stesso modo dal punto di vista di un account.
- La sottoscrizione attiva, un contratto di servizi stipulato con Microsoft per la creazione e l'esecuzione delle risorse di Azure, che sono associate a un tenant. I tenant vengono spesso citati come organizzazioni nella documentazione e durante l'uso di Active Directory.
- Un riferimento a una cache del token, un token di autenticazione archiviato per l'accesso al cloud di Azure. La posizione di archiviazione e la durata del periodo di conservazione di tale token vengono definite dalle impostazioni di salvataggio automatico dei contesti.
Per altre informazioni su questi termini, vedere Terminologia di Microsoft Entra. I token di autenticazione usati dai contesti di Azure sono uguali ad altri token archiviati che fanno parte di una sessione persistente.
Quando si accede con Connect-AzAccount
, viene creato almeno un contesto di Azure per la sottoscrizione predefinita. L'oggetto restituito da Connect-AzAccount
è il contesto di Azure predefinito usato per il resto della sessione di PowerShell.
Ottenere i contesti di Azure
I contesti di Azure disponibili vengono recuperati con il cmdlet Get-AzContext. Elencare i contesti disponibili con il parametro ListAvailable :
Get-AzContext -ListAvailable
Oppure ottenere un contesto per nome:
Get-AzContext -Name 'mycontext'
I nomi dei contesti possono essere diversi dal nome della sottoscrizione associata.
Importante
I contesti di Azure disponibili non corrispondono sempre alle sottoscrizioni disponibili, I contesti di Azure rappresentano solo informazioni archiviate in locale. Per ottenere le sottoscrizioni, usare il cmdlet Get-AzSubscription.
Creare un nuovo contesto di Azure dalle informazioni della sottoscrizione
Il cmdlet Set-AzContext consente sia di creare nuovi contesti di Azure sia di impostarli come contesto attivo. Il modo più semplice per creare un nuovo contesto di Azure consiste nell'usare le informazioni della sottoscrizione esistenti. Il cmdlet è progettato per configurare un nuovo contesto di Azure con l'oggetto output di Get-AzSubscription
come valore della pipeline:
Get-AzSubscription -SubscriptionName 'MySubscriptionName' |
Set-AzContext -Name 'MyContextName'
In alternativa, specificare il nome o l'ID della sottoscrizione oppure l'ID tenant, se necessario:
Set-AzContext -Name 'MyContextName' -Subscription 'MySubscriptionName' -Tenant '00000000-0000-0000-0000-000000000000'
Se il parametro Name viene omesso, il nome e l'ID della sottoscrizione vengono usati come nome di contesto nel formato Nome sottoscrizione (id-sottoscrizione).
Cambiare il contesto di Azure attivo
Per cambiare il contesto di Azure attivo, è possibile usare sia Set-AzContext
sia Select-AzContext. Come descritto in Creare un nuovo contesto di Azure, Set-AzContext
crea un nuovo contesto di Azure per una sottoscrizione, se non esiste, e quindi passa il contesto attivo a quello.
Select-AzContext
è progettato per essere usato solo con contesti di Azure esistenti e funziona in modo analogo all'uso Set-AzContext -Context
di , ma è progettato per l'uso con 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
Come molti altri comandi di gestione di account e contesto in Azure PowerShell Set-AzContext
e Select-AzContext
supportano il parametro Scope in modo da poter controllare per quanto tempo il contesto è attivo. L'ambito consente di modificare il contesto attivo di una singola sessione senza modificare il valore predefinito:
Get-AzContext -Name 'mycontext' | Select-AzContext -Scope Process
Per evitare di cambiare contesto per un'intera sessione di PowerShell, i comandi di Azure PowerShell con un parametro AzContext possono essere eseguiti in un determinato contesto:
$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context
L'altro uso principale dei contesti con i cmdlet di Azure PowerShell consiste nell'esecuzione di comandi in background. Per altre informazioni sull'esecuzione di processi di PowerShell con Azure PowerShell, vedere Eseguire i cmdlet di Azure PowerShell nei processi di PowerShell.
Salvare i contesti di Azure tra sessioni di PowerShell
Per impostazione predefinita, i contesti di Azure vengono salvati per l'uso tra sessioni di PowerShell. È possibile cambiare questo comportamento nei modi seguenti:
Accedere usando
-Scope Process
conConnect-AzAccount
.Connect-AzAccount -Scope Process
Il contesto di Azure restituito come parte di questo accesso è valido solo per la sessione corrente e non verrà salvato automaticamente, indipendentemente dall'impostazione di salvataggio automatico del contesto di Azure PowerShell.
Disabilitare il salvataggio automatico del contesto in Azure PowerShell con il cmdlet Disable-AzContextAutosave . La disabilitazione del salvataggio automatico non comporta la cancellazione di eventuali token archiviati. Per informazioni su come cancellare le informazioni dei contesti di Azure, vedere Rimuovere contesti e credenziali di Azure.
L'abilitazione esplicita del salvataggio automatico dei contesti di Azure può essere impostata con il cmdlet Enable-AzContextAutosave. Con il salvataggio automatico abilitato, i contesti di un utente vengono archiviati in locale per le sessioni successive di PowerShell.
Salvare manualmente i contesti con Save-AzContext per usarli in future sessioni di PowerShell, dove possono essere caricati con 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
Avviso
La disabilitazione del salvataggio automatico dei contesti non comporta la cancellazione delle informazioni salvate dei contesti archiviati. Per rimuovere le informazioni archiviate, usare il cmdlet Clear-AzContext. Per altre informazioni sulla rimozione dei contesti salvati, vedere Rimuovere contesti e credenziali.
Ognuno di questi comandi supporta il parametro Scope , che può accettare un valore di Process
da applicare solo al processo in esecuzione corrente. Ad esempio, per assicurarsi che i contesti appena creati non vengano salvati dopo l'uscita da una sessione di PowerShell:
Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription 'sub-id' -Tenant 'other-tenant'
Le informazioni dei contesti e i token vengono archiviati nella directory $env:USERPROFILE\.Azure
in Windows e in $HOME/.Azure
in altre piattaforme. Le informazioni riservate, ad esempio GLI ID sottoscrizione e gli ID tenant, possono comunque essere esposte in informazioni archiviate, tramite log o contesti salvati. Per informazioni su come cancellare le informazioni archiviate, vedere la sezione Rimuovere contesti e credenziali.
Rimuovere contesti e credenziali archiviate di Azure
Per cancellare contesti e credenziali di Azure:
Disconnettersi da un account con Disconnect-AzAccount. È possibile disconnettersi da qualsiasi account in base ad account o contesto:
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
Con la disconnessione vengono sempre rimossi i token di autenticazione e vengono cancellati i contesti salvati associati all'utente o al contesto disconnesso.
Usare Clear-AzContext. Questo cmdlet rimuove sempre contesti archiviati, token di autenticazione e disconnette l'utente.
Rimuovere un contesto con Remove-AzContext:
Remove-AzContext -Name 'mycontext' # Remove by name Get-AzContext -Name 'mycontext' | Remove-AzContext # Remove by piping Azure context object
Se si rimuove il contesto attivo, si verrà disconnessi da Azure e sarà necessario ripetere l'autenticazione con
Connect-AzAccount
.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Invia e visualizza il feedback per