Condividi tramite


Risoluzione dei problemi relativi al modulo Az PowerShell

Abilitare la registrazione di debug

Uno dei primi passaggi da eseguire per risolvere un problema con il modulo Az PowerShell consiste nell'abilitare la registrazione di debug.

Per abilitare la registrazione di debug per ogni comando, specificare il parametro Debug.

Get-AzResource -Name 'DoesNotExist' -Debug

Per abilitare la registrazione di debug per un'intera sessione di PowerShell, devi impostare il valore della variabile DebugPreference su .

$DebugPreference = 'Continue'

Problema noto: l'installazione dei moduli Az da MAR ha esito negativo

Quando si installano determinati moduli Az PowerShell dal Registro di sistema artefatto Microsoft (MAR) usando PSResourceGet, è possibile che si verifichi un errore, ad esempio:

Install-PSResource: Package(s) 'Az.Keyvault' could not be installed from repository 'MAR'.

Annotazioni

Come soluzione alternativa temporanea, installare il modulo da un altro repository, ad esempio il PowerShell Gallery, fino a quando il problema non viene risolto.

Per altre informazioni, vedere Bugfix per confrontare il nome del percorso del file per determinare la corrispondenza esatta.

Risoluzione dei problemi di autenticazione a più fattori (MFA)

Errori di accesso interattivi

Se si verificano errori durante l'esecuzione di cmdlet Azure PowerShell che creano, modificano o eliminano risorse, il problema potrebbe essere causato da un Microsoft Entra ID criterio di accesso condizionale che richiede l'autenticazione a più fattori (MFA).

Questi errori si verificano in genere quando l'autenticazione a più fattori è richiesta dai criteri, ma non viene applicata durante l'accesso.

Autenticazione SharedTokenCacheCredential non disponibile

Questo errore potrebbe essere visualizzato quando si usa:

  • Az Modulo PowerShell versione 14.2.0 o precedente
  • Modulo PowerShell Az.Accounts 5.1.1 o versioni precedenti
SharedTokenCacheCredential authentication unavailable. Token acquisition failed for user
someone@contoso.com. Ensure that you have authenticated with a developer tool that supports Azure
single sign on.

Eseguire l'aggiornamento alle versioni seguenti o versioni successive per ricevere messaggi di errore e dettagli sui criteri più informativi:

  • Az Modulo PowerShell: versione 14.3.0 o successiva
  • Modulo Az.Accounts : versione 5.2.0 o successiva

Risorsa non consentita dalla politica

Questo errore si verifica nelle versioni più recenti del modulo (Az 14.3.0+ e Az.Accounts 5.2.0+), dove L'autenticazione a più fattori è richiesta dall'accesso condizionale per operazioni specifiche.

Resource was disallowed by policy. Users must use MFA for Create operation.
Users must authenticate with multi-factor authentication to create or update resources.
Run the cmdlet below to authenticate interactively; additional parameters may be added as needed.
Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"

Opzioni della soluzione

  • Chiedere all'amministratore Azure di applicare l'autenticazione a più fattori all'accesso. Ciò consente alla sessione di soddisfare i requisiti di accesso condizionale senza passaggi aggiuntivi.

  • Se l'imposizione dell'autenticazione a più fattori all'accesso non è possibile, usare il parametro ClaimsChallenge per eseguire l'autenticazione interattiva:

    Connect-AzAccount -Tenant (Get-AzContext).Tenant.Id -ClaimsChallenge "<claims-challenge-token>"
    

Per altre informazioni, vedere Pianificazione per l'autenticazione multi-fattore obbligatoria per Azure e altri portali di amministrazione

Errore ROPC: a causa di una modifica della configurazione apportata dall'amministratore

Usare il flusso ROPC (Resource Owner Password Credential) durante l'accesso a Azure usando una password. Questo metodo di autenticazione non supporta l'autenticazione a più fattori. Ecco un esempio:

Connect-AzAccount -Credential $Credential

Se l'account utente richiede l'autenticazione a più fattori, il comando non riesce con l'errore seguente:

Connect-AzAccount : UsernamePasswordCredential authentication failed: Response status code does not
indicate success: 400 (BadRequest). See the troubleshooting guide for more information
https://aka.ms/azsdk/net/identity/usernamepasswordcredential/troubleshoot

Soluzione: Usare un metodo di autenticazione compatibile con MFA.

Avviso tra tenant: Autenticazione fallita per il tenant

Se hai accesso a più tenant e uno di essi richiede l'autenticazione a più fattori, Azure PowerShell potrebbe visualizzare il seguente avviso:

WARNING: Unable to acquire token for tenant '00000000-0000-0000-0000-000000000000' with error
'Authentication failed against tenant 00000000-0000-0000-0000-000000000000. User interaction is
required. This may be due to the conditional access policy settings such as multi-factor
authentication (MFA). If you need to access subscriptions in that tenant, please rerun
'Connect-AzAccount' with additional parameter '-TenantId 00000000-0000-0000-0000-000000000000.'

Azure PowerShell tenta di accedere con il primo tenant trovato durante l'accesso. Se tale tenant applica l'autenticazione a più fattori, l'autenticazione potrebbe non riuscire. Per evitare questo problema, specificare in modo esplicito il tenant di destinazione usando il parametro TenantId:

Connect-AzAccount -TenantId 00000000-0000-0000-0000-000000000000

In questo modo si garantisce che l'autenticazione venga eseguita per il tenant corretto, riducendo la probabilità di errori correlati a MFA.

Messaggi di annuncio negli scenari di automazione

Quando ci si connette a Azure con Azure PowerShell, i messaggi di annuncio vengono visualizzati usando il flusso di informazioni di PowerShell per impedire che modifichino l'output restituito basato su oggetti. Anche se abbiamo fatto ogni sforzo per garantire che i messaggi di annuncio non influiscano sull'esperienza, esistono alcuni scenari di automazione in cui potrebbero influire sull'utilizzo. In caso di problemi, è consigliabile eliminare il flusso di informazioni in questi scenari:

Connect-AzAccount -Subscription '<subscription name or id>' -InformationAction Ignore

Responsabile degli Account Web (WAM)

  • Il metodo di accesso interattivo non può aprire una finestra per WAM e restituisce l'errore: Autenticazione annullata dall'utente.
  • Azure PowerShell cmdlet non possono essere eseguiti dopo l'accesso con nome utente e password o codice del dispositivo.
  • La finestra popup di WAM non visualizza l'opzione Account aziendale e dell'istituto di istruzione.
  • Il metodo di accesso interattivo non può aprire una finestra WAM nella console di PowerShell ISE Windows.

La soluzione alternativa per questi problemi consiste nel disabilitare WAM:

Update-AzConfig -EnableLoginByWam $false
  • La finestra popup di WAM per selezionare un account non è facile da trovare. Ridurre al minimo le altre finestre per individuare la finestra popup.

Installazione

Questa sezione contiene un elenco di soluzioni ai problemi comuni durante l'installazione del modulo Az PowerShell.

Coesistenza di Az e AzureRM

Avviso

Non è supportata l'installazione dei moduli AzureRM e Az PowerShell in Windows PowerShell 5.1 contemporaneamente.

In uno scenario in cui è necessario installare il modulo AzureRM e Az PowerShell nello stesso sistema Windows:

  • AzureRM deve essere installato solo nell'ambito utente corrente di Windows PowerShell 5.1.
  • Installare il modulo Az PowerShell in PowerShell 7.2 o versione successiva.

Avviso

Il modulo AzureRM PowerShell è stato ufficialmente deprecato a partire dal 29 febbraio 2024. Agli utenti è consigliato migrare da AzureRM al modulo Az PowerShell per garantire supporto e aggiornamenti continui.

Anche se il modulo AzureRM può ancora funzionare, non è più gestito né supportato, pertanto qualsiasi uso continuato è a discrezione e rischio dell'utente. Si prega di fare riferimento alle nostre risorse di migrazione per avere una guida sulla transizione verso il modulo Az.

Visual Studio

Le versioni precedenti di Visual Studio possono installare Azure PowerShell come parte del carico di lavoro di sviluppo Azure, che installa il modulo AzureRM. Azure PowerShell può essere rimosso utilizzando il programma di installazione di Visual Studio o "Disinstalla" in "App e funzionalità". Se è già installato PowerShell 7.x, potrebbe essere necessario installare manualmente il modulo Az PowerShell.

Il proxy blocca la connessione

Se si ricevono errori da Install-Module indicando che il PowerShell Gallery non è raggiungibile, potresti essere dietro un proxy. Diversi sistemi operativi e ambienti di rete hanno requisiti diversi per la configurazione di un proxy a livello di sistema. Per conoscere le impostazioni del proxy e sapere come configurarlo per l'ambiente corrente, contattare l'amministratore di sistema.

PowerShell stesso potrebbe non essere configurato per l'uso automatico di questo proxy. Con PowerShell 5.1 e versioni successive, configurare la sessione di PowerShell per l'uso di un proxy usando i comandi seguenti:

$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

Se le credenziali del sistema operativo sono configurate correttamente, questa configurazione instrada le richieste di PowerShell tramite il proxy. Per rendere persistente questa impostazione tra una sessione e l'altra, aggiungere i comandi al proprio profilo PowerShell.

Per installare il pacchetto, il proxy deve consentire le connessioni HTTPS a www.powershellgallery.com.

Il riferimento all'oggetto non è impostato su un'istanza di un oggetto.

Il messaggio "object reference not set to an instance of an object" indica che si fa riferimento a un oggetto null o a una risorsa Azure che non esiste o che non si dispone delle autorizzazioni di accesso.

$resourceId =  '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<webapp-name>/privateEndpointConnections/<endpoint-name>'
Get-AzPrivateEndpointConnection -ResourceId $resourceId
Get-AzPrivateEndpointConnection: Object reference not set to an instance of an object.

È possibile usare il cmdlet Get-AzResource per verificare che la risorsa Azure specificata esista.

Get-AzResource -ResourceId $resourceId

Problemi di autorizzazione con i cmdlet AzAD

Il modulo Az PowerShell usa microsoft Graph API. L'amministrazione o la gestione delle risorse in Azure con il modulo Az PowerShell richiede le stesse autorizzazioni dell'esecuzione dell'attività identica dal portale di Azure o da qualsiasi altro strumento da riga di comando Azure. Per domande specifiche sulle autorizzazioni, vedere le informazioni di riferimento sulle autorizzazioni Microsoft Graph.

Microsoft Graph parametri di interrogazione

Ora i cmdlet AzAd in Az.Resources supportano i parametri di query e i parametri di ricerca . Per informazioni dettagliate sulla sintassi, vedere i collegamenti a cui si fa riferimento in precedenza.

Get-AzAdGroupMember non restituisce i principali di servizio

A causa delle limitazioni del Graph API corrente, le entità servizio non vengono restituite da Get-AzAdGroupMember in Az 7.x. Come soluzione alternativa, è possibile usare Invoke-AzRestMethod con la versione beta di Microsoft Graph API.

L'esempio seguente richiede il modulo Az PowerShell. Sostituire nella prima riga con il nome del gruppo.

$Group = Get-AzADGroup -DisplayName myGroupName
((Invoke-AzRestMethod -Uri "https://graph.microsoft.com/beta/groups/$($Group.id)/members").Content |
  ConvertFrom-Json).value |
  Select-Object -Property DisplayName, Id, @{label='OdataType';expression={$_.'@odata.type'}}

Il comando è stato trovato ma non è stato possibile caricarlo

Il messaggio seguente viene restituito da PowerShell quando si tenta di eseguire uno dei comandi Az PowerShell.

Connect-AzAccount: The 'Connect-AzAccount' command was found in the module 'Az.Accounts', but the module could not be loaded. For more information, run 'Import-Module Az.Accounts'.

Questo messaggio si verifica quando sono installati entrambi i moduli Az e AzureRM PowerShell nello stesso sistema basato su Windows e sono presenti nel $env:PSModulePath per la stessa versione di PowerShell.

Importante

Quando AzureRM viene installato nell'ambito AllUsers di Windows PowerShell, viene installato in un percorso che fa parte del $env:PSModulePath per PowerShell 7. Ciò non è supportato a causa di conflitti tra i moduli AzureRM e Az PowerShell.

Sia Az che AzureRM possono coesistere nello stesso sistema Windows, ma solo se AzureRM è installato nell'ambito CurrentUser di Windows PowerShell e Az installato in PowerShell 7. Per altre informazioni, vedere Installare il modulo Az PowerShell.

Avviso

Il modulo AzureRM PowerShell è stato ufficialmente deprecato a partire dal 29 febbraio 2024. Agli utenti è consigliato migrare da AzureRM al modulo Az PowerShell per garantire supporto e aggiornamenti continui.

Anche se il modulo AzureRM può ancora funzionare, non è più gestito né supportato, pertanto qualsiasi uso continuato è a discrezione e rischio dell'utente. Si prega di fare riferimento alle nostre risorse di migrazione per avere una guida sulla transizione verso il modulo Az.

In macOS viene restituito un errore quando l'autorizzazione KeyChain fallisce

Quando si esegue Azure PowerShell in MacOS, è possibile che venga visualizzato un messaggio di errore durante il tentativo di accedere all'account Azure da una sessione di PowerShell.

DeviceCodeCredential authentication failed: Persistence check failed. Reason: KeyChain authorization/authentication failed. .Error code: -25293. OS error code -25293.

Come soluzione alternativa a questo problema, è possibile disabilitare l'archiviazione delle credenziali tra le sessioni eseguendo il comando seguente. Dopo aver apportato questa modifica, è tuttavia necessario eseguire ogni volta che si avvia una nuova sessione di PowerShell.

Disable-AzContextAutosave

La connessione per il sito non è sicura

Quando il browser predefinito è Microsoft Edge, è possibile che venga visualizzato l'errore seguente quando si tenta di accedere a Azure in modo interattivo con Connect-AzAccount: "Il collegamento per il sito non è sicuro." Per risolvere questo problema, visitare edge://net-internals/#hsts in Microsoft Edge. Aggiungere in "Elimina criteri di sicurezza del dominio" e fare clic su Elimina.

Errore del dominio verificato di Service Principal IdentifierUri

Errore: i valori della proprietà identifierUris devono usare un dominio verificato dell'organizzazione o il relativo sottodominio viene visualizzato durante l'esecuzione di o .

A causa della modifica di rilievo Microsoft Entra che richiede AppId Uri nelle applicazioni a tenant singolo per richiedere l'uso di domini verificati o schemi predefiniti è necessario aggiornare il ModuloAz.Resources alla versione 4.1.0 o successiva per continuare a usare i cmdlet New-AzADServicePrincipal o New-AzADApplication.

È anche possibile eseguire l'aggiornamento al modulo Az PowerShell versione 6.0 o successiva.

Sequenza temporale

Il requisito è entrato in vigore il 15 ottobre 2021.

Versioni interessate

Le versioni seguenti di Azure PowerShell sono interessate dalla modifica significativa di AzureAD.

  • Modulo Az.Resources PowerShell versione 3.5.1-preview o inferiore.
  • Modulo Az PowerShell versione 5.9.0 o inferiore.

Se si verificano ancora problemi dopo l'aggiornamento, è possibile aprire un issue.

Soluzione

Se non è possibile eseguire l'aggiornamento ai moduli di PowerShell descritti in precedenza, è possibile seguire questi passaggi durante la creazione di un'entità servizio:

Altri problemi

Se si verifica un problema di prodotto con Azure PowerShell non elencato in questo articolo o si richiede ulteriore assistenza, filerà un problema in GitHub.