Résolution des problèmes liés au module Az PowerShell

Activer l’enregistrement du débogage

L’une des premières étapes à suivre pour résoudre un problème avec le module Azure Az PowerShell consiste à activer la journalisation du débogage.

Pour activer la journalisation du débogage par commande, spécifiez le paramètre Débogage.

Get-AzResource -Name 'DoesNotExist' -Debug

Pour activer la journalisation du débogage pour une session PowerShell entière, définissez la valeur de la variable DebugPreference sur Continue.

$DebugPreference = 'Continue'

Installation

Cette section contient la liste des solutions aux problèmes courants qui se produisent lors de l’installation du module Azure Az PowerShell.

Coexistence d’Az et AzureRM

Avertissement

Nous ne prenons pas en charge l’installation simultanée des modules AzureRM et Az PowerShell dans Windows PowerShell 5.1.

Dans un scénario où vous devez installer à la fois AzureRM et le module Az PowerShell sur le même système Windows :

  • AzureRM doit être installé uniquement dans le cadre utilisateur actuel de Windows PowerShell 5.1.
  • Installez le module Az PowerShell dans PowerShell 7.2 ou une version ultérieure.

Avertissement

Le module AzureRM PowerShell a été officiellement déprécié le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Il est possible que le module AzureRM fonctionne encore, mais il ne fait plus l’objet de maintenance ni de support. L’utilisateur peut continuer à s’en servir s’il le souhaite, à ses propres risques. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

Visual Studio

Les versions antérieures de Visual Studio peuvent installer Azure PowerShell dans le cadre de la charge de travail de développement Azure, qui installe le module AzureRM. Azure PowerShell peut être supprimé à l’aide du programme d’installation de Visual Studio ou en utilisant « Désinstaller » dans Applications et fonctionnalités. Si vous avez déjà installé PowerShell 7.x, il peut être nécessaire d’installer manuellement le module Az PowerShell.

Le proxy bloque la connexion

Si vous recevez des erreurs de Install-Module indiquant que PowerShell Gallery est inaccessible, vous êtes peut-être derrière un proxy. Les différents systèmes d’exploitation et environnements réseau ont des exigences propres pour configurer un proxy à l’échelle du système. Contactez votre administrateur système pour vos paramètres de proxy et pour savoir comment les configurer pour votre environnement.

PowerShell lui-même peut ne pas être configuré pour utiliser ce proxy automatiquement. Avec PowerShell 5.1 et ultérieur, configurez la session PowerShell pour utiliser un proxy avec les commandes suivantes :

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

Si vos informations d’identification du système d’exploitation sont configurées correctement, cette configuration route les demandes PowerShell via le proxy. Pour conserver cette configuration entre les sessions, ajoutez les commandes à votre profil PowerShell.

Pour installer le package, votre proxy doit autoriser les connexions HTTPS sur www.powershellgallery.com.

La référence d’objet n’a pas la valeur d’une instance d’un objet

Le message « La référence d’objet n’est pas définie sur une instance d’objet » signifie que vous référencez un objet null, ou une ressource Azure qui n’existe pas ou pour laquelle vous n’avez pas d’autorisations d’accès.

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

Vous pouvez utiliser l’applet de commande Get-AzResource pour vérifier que la ressource Azure spécifiée existe.

Get-AzResource -ResourceId $resourceId

Problèmes d’autorisation avec les applets de commande AzAD

Le module Az PowerShell utilise Microsoft API Graph. L’administration ou la gestion des ressources dans Azure avec le module Az PowerShell nécessite les mêmes autorisations que l’exécution de la tâche identique à partir de Portail Azure ou d’un autre outil en ligne de commande Azure. Pour des questions spécifiques sur les permissions, voir la référence sur les permissions Microsoft Graph.

Paramètres de requête Microsoft Graph

Les applets de commande AzAD sous Az.Resources prennent désormais en charge les paramètres de requête et les paramètres de requête de recherche. Pour plus d’informations sur la syntaxe, consultez les liens précédemment référencés.

Get-AzAdGroupMember ne retourne pas les principaux de service

En raison des limitations de l’API Graph actuelle, les principaux de service ne sont pas retournés par Get-AzAdGroupMember dans Az 7.x. En guise de solution de contournement, vous pouvez utiliser Invoke-AzRestMethod avec la version bêta de l’API Microsoft Graph.

L’exemple suivant demande le module Az PowerShell. Remplacez myGroupName sur la première ligne par le nom de votre groupe.

$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'}}

Commande trouvée mais impossible à charger

Le message suivant est retourné par PowerShell lorsque vous essayez d’exécuter l’une des commandes 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'.

Ce message apparaît lorsque les modules Az et AzureRM PowerShell sont installés sur le même système Windows et qu’ils existent dans $env:PSModulePath pour la même version de PowerShell.

Important

Quand AzureRM est installé dans l’étendue AllUsers de Windows PowerShell, il est installé dans un emplacement qui fait partie de $env:PSModulePath pour PowerShell 7. Ce n’est pas pris en charge en raison de conflits entre les modules AzureRM et Az PowerShell.

Az et AzureRM peuvent coexister sur le même système Windows, mais uniquement si AzureRM est installé dans l’étendue CurrentUser de Windows PowerShell et Az installé dans PowerShell 7. Pour plus d’informations, consultez Installer le module Az PowerShell.

Avertissement

Le module AzureRM PowerShell a été officiellement déprécié le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Il est possible que le module AzureRM fonctionne encore, mais il ne fait plus l’objet de maintenance ni de support. L’utilisateur peut continuer à s’en servir s’il le souhaite, à ses propres risques. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

Sur MacOS, une erreur est retournée si l’autorisation KeyChain échoue

Lorsque vous exécutez Azure PowerShell sur MacOS, vous pouvez rencontrer un message d’erreur quand vous tentez de vous connecter à votre compte Azure à partir d’une session PowerShell.

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

Pour contourner ce problème, vous pouvez désactiver le stockage des informations d’identification entre les sessions en exécutant la commande suivante. Après avoir fait ce changement, toutefois, vous devez exécuter Connect-AzAccount chaque fois que vous démarrez une nouvelle session PowerShell.

Disable-AzContextAutosave

La connexion pour ce site n’est pas sécurisée

Lorsque votre navigateur par défaut est Microsoft Edge, vous pouvez rencontrer l’erreur suivante lors de la tentative de connexion à Azure de manière interactive avec Connect-AzAccount : « La connexion pour ce site n’est pas sécurisée. » Pour résoudre ce problème, visitez edge://net-internals/#hsts dans Microsoft Edge. Ajoutez localhost sous « Supprimer la stratégie de sécurité de domaine », puis cliquez sur Supprimer.

Erreur du domaine vérifié de l’IdentifierUri du principal du service

L’erreur Les valeurs de la propriété IdentifierUris doivent utiliser un domaine vérifié de l’organisation ou de son sous-domaine s’affiche lors de l’exécution de New-AzADServicePrincipal ou de New-AzADApplication.

En raison du changement cassant de Microsoft Entra qui exige que l’URI AppId dans les applications monolocataires demande l’utilisation du modèle par défaut ou des domaines vérifiés, vous devez mettre à niveau le module Az.Resources vers la version 4.1.0 ou ultérieure pour continuer à utiliser les applets de commande New-AzADServicePrincipal ou New-AzADApplication.

Vous pouvez également mettre à niveau vers la version 6.0 ou ultérieure du module Az PowerShell.

Durée

L’exigence est entrée en vigueur le 15 octobre 2021.

Versions impactées

Les versions suivantes d’Azure PowerShell sont affectées par le changement cassant d’AzureAD :

  • Module Az.Resources PowerShell version 3.5.1-preview ou antérieure.
  • Module Az PowerShell version 5.9.0 ou antérieure.

Si vous rencontrez toujours des problèmes après la mise à niveau, n’hésitez pas à ouvrir un problème.

Solution de contournement

Si vous ne pouvez pas faire la mise à niveau vers les modules PowerShell décrits ci-dessus, vous pouvez suivre ces étapes pendant la création d’un principal de service :

Autres problèmes

Si vous rencontrez avec Azure PowerShell un problème de produit qui ne figure pas dans cet article ou si vous avez besoin d’aide supplémentaire, signalez un problème sur GitHub.