Avec le temps, les appareils connectés à Microsoft Entra ID (anciennement Azure AD) peuvent devenir obsolètes, inactifs ou dupliqués. Disposer d’une liste des appareils inactifs ou obsolètes à nettoyer permet aux administrateurs informatiques d’agir en connaissance de cause, d’optimiser les licences et de conserver un environnement Azure propre.
Ce guide explique comment utiliser PowerShell et l’API Microsoft Graph pour identifier, exporter et automatiser le nettoyage Azure AD des appareils obsolètes joints au domaine.
Exporter le fichier CSV des appareils obsolètes joints à Azure AD : guide étape par étape
Pour supprimer les appareils inactifs dans Azure AD, il vous faut d’abord une liste de ces appareils. Cette section détaille pas à pas l’exportation du fichier CSV via PowerShell.
📌 Prérequis :
Voici ce qu’il faut réunir pour mener à bien l’exportation du fichier CSV :
- des droits d’administrateur Azure AD ou Entra ID
- un accès à l’API Microsoft Graph avec les autorisations suivantes :
- Device.Read.All
- Directory.Read.All
- PowerShell 7+
- le module Microsoft.Graph installé
De plus, vous aurez peut-être besoin d’un agent RMM et d’un accès au registre pour les étapes complémentaires après l’export du CSV.
Étape 1 : se connecter à Microsoft Graph et récupérer la liste des appareils
Procédez comme suit :
- Connectez-vous à Microsoft Graph et authentifiez la connexion à l’aide de la commande :
Connect-MgGraph -Scopes "Device.Read.All Directory.Read.All"
- Récupérez la liste des appareils avec la commande : $devices = Get-MgDevice -All
Étape 2 : filtrer les appareils Azure obsolètes ou inactifs
Identifiez les appareils Azure obsolètes ou inactifs à partir de leur dernière activité. Pour cela, définissez le seuil d’inactivité avec la commande :
$cutoff = (Get-Date).AddDays(-90)
$inactiveDevices = $devices | Where-Object {
$_.ApproximateLastSignInDateTime -lt $cutoff
}
💡 ASTUCE : pour obtenir une liste plus précise, vous pouvez aussi exclure les comptes de service et les objets hybrides avec cette commande :
$inactiveDevices = $inactiveDevices | Where-Object {
# Exclude Hybrid Azure AD Joined devices
$_.DeviceTrustType -ne "HybridAzureADJoined" -and
# Exclude Personally Owned devices (keep only Corporate owned)
$_.DeviceOwnership -eq "Company"
}
Autre méthode : repérer les utilisateurs inactifs dans Azure Active Directory
Vous pouvez également repérer les utilisateurs inactifs depuis le centre d’administration Entra. Rendez-vous dans Surveillance > Connexions, puis filtrez les utilisateurs qui ne se sont pas connectés sur une période donnée (30, 60 ou 90 jours, par exemple).
Étape 3 : exporter le fichier CSV
Pour exporter le fichier CSV, utilisez cette commande :
$inactiveDevices | Select-Object DisplayName, Id, DeviceId,
DeviceTrustType, ApproximateLastSignInDateTime |
Export-Csv -Path "C:\Reports\InactiveAzureDevices.csv" -NoTypeInformation
Une fois exporté, le CSV peut servir à la documentation, aux workflows de validation et à l’import dans des scripts de nettoyage.
Marquer les appareils pour un nettoyage local et supprimer les ordinateurs obsolètes d’Active Directory
Au-delà des trois étapes principales décrites plus haut, vous pouvez poursuivre le nettoyage avec les méthodes suivantes :
Marquer les appareils pour un nettoyage local dans le registre Windows via PowerShell
Le marquage des appareils est utile lorsque vous y accédez via un RMM ou des scripts. Une fois marqués, les outils RMM et de scripting identifient les appareils considérés comme obsolètes, ce qui leur permet de coordonner les actions de nettoyage en toute sécurité.
Exécutez cette commande dans PowerShell :
New-Item -Path "HKLM:\SOFTWARE\Org\DeviceCleanup" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceCleanup" -Name "CleanupStatus" -Value "MarkedInactive"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceCleanup" -Name "MarkedDate" -Value (Get-Date).ToString("u")
Exécutez la ligne suivante dans l’invite de commandes pour vérifier que les modifications ont bien été appliquées :
reg query HKLM\SOFTWARE\Org\DeviceCleanup
Supprimer les appareils obsolètes dans Azure AD
Il existe deux façons de nettoyer les appareils obsolètes, inactifs ou dupliqués dans Azure AD : via une suppression Microsoft Graph ou via le portail Azure.
Nettoyer un appareil via Microsoft Graph
Pour supprimer un appareil directement via Graph :
Remove-MgDevice -DeviceId $device.Id
⚠️ Important : cette commande entraîne une suppression immédiate et définitive. Les appareils ne sont pas placés dans une corbeille. À utiliser avec prudence.
Nettoyer un appareil obsolète joint à AD via le portail Azure
Le portail Azure propose une fonction de suppression en masse qui permet de nettoyer plusieurs appareils inactifs d’un coup. Rendez-vous dans Portail Azure > Entra ID > Appareils > Actions en masse > Supprimer.
Autres points à prendre en compte avant de nettoyer ou de marquer comme inactifs des appareils joints à AD
MFA (authentification forte) et stratégies d’accès conditionnel
Lorsqu’un appareil est lié à l’accès d’un utilisateur, vérifiez s’il intervient dans les flux MFA (authentification forte) ou d’accès conditionnel. Supprimer un appareil encore rattaché aux conditions d’accès d’un utilisateur risque de l’empêcher d’accéder aux applications de l’entreprise, aux VPN et à d’autres fichiers importants.
Licences
Intune, Microsoft Defender et d’autres outils Microsoft fonctionnent souvent avec une licence par appareil enregistré. Les appareils inactifs et dupliqués continuent généralement de consommer ces licences. Si votre entreprise compte beaucoup d’appareils obsolètes, envisagez un nettoyage pour libérer des licences et les réaffecter.
Environnements hybrides
Dans un environnement hybride, les appareils peuvent être joints soit via un AD local, soit via l’annuaire Entra. Supprimer un appareil hybride sans avoir confirmé son type de jonction peut poser problème, par exemple des états de jonction incohérents. Vérifiez toujours le statut de jonction hybride avant toute suppression.
Audit et documentation
Les opérations de nettoyage font généralement partie des processus de gestion informatique courants liés à la conformité, aux audits de sécurité et à la gestion des licences. Tenir un journal des appareils supprimés et de leur statut permet de garder une documentation cohérente et de s’assurer qu’aucune suppression non autorisée n’a eu lieu.
Résolution des problèmes courants
Le CSV n’est pas exporté
Ce problème survient lorsque l’export du CSV (étape 3) échoue. Les causes possibles : le chemin n’existe pas, l’utilisateur ne dispose pas des autorisations nécessaires, ou il a utilisé un chemin relatif qui ne se résout pas correctement dans la session. Pour y remédier, vérifiez le chemin de sortie ou utilisez le chemin complet dans $env: TEMP.
Autorisation refusée
Les utilisateurs qui n’incluent pas les scopes nécessaires lors de la connexion à Microsoft Graph peuvent être empêchés de récupérer les données des appareils. Pour éviter ou corriger ce refus d’autorisation, assurez-vous de disposer du rôle d’administrateur et des autorisations adéquats, et d’inclure les scopes de l’API Graph appropriés.
ApproximateLastSignInDateTime vide
Un champ ApproximateLastSignInDateTime vide signifie qu’aucune connexion n’a jamais eu lieu sur l’appareil ou que la télémétrie n’est pas disponible. Dans ce cas, recoupez les données de l’appareil avec d’autres outils comme Intune, votre RMM ou la dernière synchronisation AD avant de le marquer comme inactif.
Limitation (throttling) de Graph
Microsoft Graph limite le nombre de requêtes réalisables sur une période donnée, en particulier dans les grands environnements. Ajoutez des délais ou une pagination si vous travaillez sur des environnements volumineux.
Les services NinjaOne qui facilitent les workflows de nettoyage des appareils
En tant qu’outil, NinjaOne prend en charge le nettoyage des appareils inactifs grâce aux services suivants :
- déploiement de scripts de nettoyage ou de marqueurs de registre sur l’ensemble des appareils
- reporting des valeurs de registre (CleanupStatus, par exemple) pour un suivi au niveau des terminaux
- alertes automatiques sur les terminaux marqués comme inactifs ou sans remontée depuis un seuil donné
- marquage des appareils selon leur rôle, leur site ou leur statut en vue d’une action de suivi
- visibilité sur l’historique de nettoyage et le renouvellement du parc, tous tenants confondus
Ces services font le lien entre le nettoyage des identités dans le cloud et les opérations sur les terminaux.
Gardez vos identités et vos licences bien rangées grâce à des audits et suppressions réguliers des appareils AAD
Auditer régulièrement l’inventaire des appareils Azure AD est indispensable pour une gouvernance des identités saine et une gestion efficace des licences. Ce guide a détaillé l’utilisation de PowerShell pour exporter votre premier fichier CSV, puis les étapes suivantes pour supprimer efficacement les appareils inactifs.
Sujets connexes :