{"id":886542,"date":"2026-09-29T16:50:59","date_gmt":"2026-09-29T16:50:59","guid":{"rendered":"https:\/\/www.ninjaone.com\/blog\/comment-utiliser-powershell-pour-exporter-linventaire-des-appareils-azure-inactifs-a-nettoyer\/"},"modified":"2026-09-29T16:51:00","modified_gmt":"2026-09-29T16:51:00","slug":"comment-utiliser-powershell-pour-exporter-linventaire-des-appareils-azure-inactifs-a-nettoyer","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/fr\/blog\/comment-utiliser-powershell-pour-exporter-linventaire-des-appareils-azure-inactifs-a-nettoyer\/","title":{"rendered":"Comment utiliser PowerShell pour exporter l&rsquo;inventaire des appareils Azure inactifs \u00e0 nettoyer"},"content":{"rendered":"<p>Avec le temps, les appareils connect\u00e9s \u00e0 <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/business\/identity-access\/microsoft-entra-id\" target=\"_blank\" rel=\"noopener\">Microsoft Entra ID<\/a> (anciennement Azure AD) peuvent devenir obsol\u00e8tes, inactifs ou dupliqu\u00e9s. Disposer d&rsquo;une liste des appareils inactifs ou obsol\u00e8tes \u00e0 nettoyer permet aux administrateurs informatiques d&rsquo;agir en connaissance de cause, d&rsquo;optimiser les licences et de conserver un environnement Azure propre.<\/p>\n<p>Ce guide explique comment utiliser <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-powershell\/\">PowerShell<\/a> et l&rsquo;API Microsoft Graph pour identifier, exporter et automatiser le <strong>nettoyage Azure AD<\/strong> des <strong>appareils obsol\u00e8tes<\/strong> joints au domaine.<\/p>\n<h2>Exporter le fichier CSV des appareils obsol\u00e8tes joints \u00e0 Azure AD\u00a0: guide \u00e9tape par \u00e9tape<\/h2>\n<p>Pour supprimer les appareils inactifs dans Azure AD, il vous faut d&rsquo;abord une liste de ces appareils. Cette section d\u00e9taille pas \u00e0 pas l&rsquo;exportation du fichier CSV via PowerShell.<\/p>\n<p>\ud83d\udccc <strong>Pr\u00e9requis<\/strong>\u00a0:<\/p>\n<p>Voici ce qu&rsquo;il faut r\u00e9unir pour mener \u00e0 bien l&rsquo;exportation du fichier CSV\u00a0:<\/p>\n<ul>\n<li>des droits d&rsquo;administrateur Azure AD ou Entra ID<\/li>\n<li>un acc\u00e8s \u00e0 l&rsquo;API Microsoft Graph avec les autorisations suivantes\u00a0:\n<ul>\n<li>Device.Read.All<\/li>\n<li>Directory.Read.All<\/li>\n<\/ul>\n<\/li>\n<li>PowerShell 7+<\/li>\n<li>le module Microsoft.Graph install\u00e9<\/li>\n<\/ul>\n<p>De plus, vous aurez peut-\u00eatre besoin d&rsquo;un agent RMM et d&rsquo;un acc\u00e8s au registre pour <a href=\"#tag-devices\">les \u00e9tapes compl\u00e9mentaires apr\u00e8s l&rsquo;export du CSV<\/a>.<\/p>\n<h3>\u00c9tape 1\u00a0: se connecter \u00e0 Microsoft Graph et r\u00e9cup\u00e9rer la liste des appareils<\/h3>\n<p>Proc\u00e9dez comme suit\u00a0:<\/p>\n<ol>\n<li>Connectez-vous \u00e0 Microsoft Graph et authentifiez la connexion \u00e0 l&rsquo;aide de la commande\u00a0:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px\"><code><strong>Connect-MgGraph -Scopes \"Device.Read.All Directory.Read.All\"<\/strong><\/code><\/p>\n<ol start=\"2\">\n<li>R\u00e9cup\u00e9rez la liste des appareils avec la commande\u00a0: <strong>$devices = Get-MgDevice -All<\/strong><\/li>\n<\/ol>\n<h3>\u00c9tape 2\u00a0: filtrer les appareils Azure obsol\u00e8tes ou inactifs<\/h3>\n<p>Identifiez les appareils Azure obsol\u00e8tes ou inactifs \u00e0 partir de leur derni\u00e8re activit\u00e9. Pour cela, d\u00e9finissez le seuil d&rsquo;inactivit\u00e9 avec la commande\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><strong>$cutoff = (Get-Date).AddDays(-90)<\/strong><br \/>\n<strong>$inactiveDevices = $devices | Where-Object {<\/strong><br \/>\n<strong>       $_.ApproximateLastSignInDateTime -lt $cutoff<\/strong><br \/>\n<strong>}<\/strong><\/p>\n<p>\ud83d\udca1<strong> ASTUCE\u00a0: <\/strong>pour obtenir une liste plus pr\u00e9cise, vous pouvez aussi exclure les comptes de service et les objets hybrides avec cette commande\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><code><strong>$inactiveDevices = $inactiveDevices | Where-Object {<\/strong><br \/>\n<strong>      # Exclude Hybrid Azure AD Joined devices<\/strong><br \/>\n<strong>      $_.DeviceTrustType -ne \"HybridAzureADJoined\" -and<\/strong><br \/>\n<strong>      # Exclude Personally Owned devices (keep only Corporate owned)<\/strong><br \/>\n<strong>      $_.DeviceOwnership -eq \"Company\"<\/strong><br \/>\n<strong>}<\/strong><\/code><\/p>\n<h4>Autre m\u00e9thode\u00a0: rep\u00e9rer les utilisateurs inactifs dans Azure Active Directory<\/h4>\n<p>Vous pouvez \u00e9galement rep\u00e9rer les utilisateurs inactifs depuis le centre d&rsquo;administration Entra. Rendez-vous dans <strong>Surveillance &gt; Connexions<\/strong>, puis filtrez les utilisateurs qui ne se sont pas connect\u00e9s sur une p\u00e9riode donn\u00e9e (30, 60 ou 90 jours, par exemple).<\/p>\n<h3 id=\"step-3\">\u00c9tape 3\u00a0: exporter le fichier CSV<\/h3>\n<p>Pour exporter le fichier CSV, utilisez cette commande\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><strong>$inactiveDevices | Select-Object DisplayName, Id, DeviceId, <\/strong><br \/>\n<strong>DeviceTrustType, ApproximateLastSignInDateTime |<\/strong><br \/>\n<code><strong>Export-Csv -Path \"C:\\Reports\\InactiveAzureDevices.csv\" -NoTypeInformation<\/strong><\/code><\/p>\n<p>Une fois export\u00e9, le CSV peut servir \u00e0 la documentation, aux workflows de validation et \u00e0 l&rsquo;import dans des scripts de nettoyage.<\/p>\n<h2 id=\"tag-devices\">Marquer les appareils pour un nettoyage local et supprimer les ordinateurs obsol\u00e8tes d&rsquo;Active Directory<\/h2>\n<p>Au-del\u00e0 des trois \u00e9tapes principales d\u00e9crites plus haut, vous pouvez poursuivre le nettoyage avec les m\u00e9thodes suivantes\u00a0:<\/p>\n<h3>Marquer les appareils pour un nettoyage local dans le registre Windows via PowerShell<\/h3>\n<p>Le marquage des appareils est utile lorsque vous y acc\u00e9dez via un RMM ou des scripts. Une fois marqu\u00e9s, les outils RMM et de scripting identifient les appareils consid\u00e9r\u00e9s comme obsol\u00e8tes, ce qui leur permet de coordonner les actions de nettoyage en toute s\u00e9curit\u00e9.<\/p>\n<p>Ex\u00e9cutez cette commande dans PowerShell\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><code><strong>New-Item -Path \"HKLM:\\SOFTWARE\\Org\\DeviceCleanup\" -Force<\/strong><\/code><br \/>\n<code><strong>Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Org\\DeviceCleanup\" -Name \"CleanupStatus\" -Value \"MarkedInactive\"<\/strong><\/code><br \/>\n<code><strong>Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Org\\DeviceCleanup\" -Name \"MarkedDate\" -Value (Get-Date).ToString(\"u\")<\/strong><\/code><\/p>\n<p>Ex\u00e9cutez la ligne suivante dans l&rsquo;invite de commandes pour v\u00e9rifier que les modifications ont bien \u00e9t\u00e9 appliqu\u00e9es\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><strong>reg query HKLM\\SOFTWARE\\Org\\DeviceCleanup<\/strong><\/p>\n<h3>Supprimer les appareils obsol\u00e8tes dans Azure AD<\/h3>\n<p>Il existe deux fa\u00e7ons de nettoyer les appareils obsol\u00e8tes, inactifs ou dupliqu\u00e9s dans Azure AD\u00a0: via une suppression Microsoft Graph ou via le portail Azure.<\/p>\n<h4>Nettoyer un appareil via Microsoft Graph<\/h4>\n<p>Pour supprimer un appareil directement via Graph\u00a0:<\/p>\n<p style=\"padding-left: 40px\"><strong>Remove-MgDevice -DeviceId $device.Id<\/strong><\/p>\n<p>\u26a0\ufe0f <strong>Important\u00a0: <\/strong>cette commande entra\u00eene une suppression imm\u00e9diate et d\u00e9finitive. Les appareils ne sont pas plac\u00e9s dans une corbeille. \u00c0 utiliser avec prudence.<\/p>\n<h4>Nettoyer un appareil obsol\u00e8te joint \u00e0 AD via le portail Azure<\/h4>\n<p>Le portail Azure propose une fonction de suppression en masse qui permet de nettoyer plusieurs appareils inactifs d&rsquo;un coup. Rendez-vous dans <strong>Portail Azure &gt; Entra ID &gt; Appareils &gt; Actions en masse &gt; Supprimer<\/strong>.<\/p>\n<h2>Autres points \u00e0 prendre en compte avant de nettoyer ou de marquer comme inactifs des appareils joints \u00e0 AD<\/h2>\n<h3>MFA (authentification forte) et strat\u00e9gies d&rsquo;acc\u00e8s conditionnel<\/h3>\n<p>Lorsqu&rsquo;un appareil est li\u00e9 \u00e0 l&rsquo;acc\u00e8s d&rsquo;un utilisateur, v\u00e9rifiez s&rsquo;il intervient dans les flux <a href=\"https:\/\/www.ninjaone.com\/fr\/it-hub\/endpoint-security\/mfa-authentification-forte\/\">MFA (authentification forte)<\/a> ou d&rsquo;acc\u00e8s conditionnel. Supprimer un appareil encore rattach\u00e9 aux conditions d&rsquo;acc\u00e8s d&rsquo;un utilisateur risque de l&#8217;emp\u00eacher d&rsquo;acc\u00e9der aux applications de l&rsquo;entreprise, aux <a href=\"https:\/\/www.ninjaone.com\/fr\/it-hub\/endpoint-security\/qu-est-ce-qu-un-vpn-reseau-prive-virtuel\/\">VPN<\/a> et \u00e0 d&rsquo;autres fichiers importants.<\/p>\n<h3>Licences<\/h3>\n<p>Intune, Microsoft Defender et d&rsquo;autres outils Microsoft fonctionnent souvent avec une licence par appareil enregistr\u00e9. Les appareils inactifs et dupliqu\u00e9s continuent g\u00e9n\u00e9ralement de consommer ces licences. Si votre entreprise compte beaucoup d&rsquo;appareils obsol\u00e8tes, envisagez un nettoyage pour lib\u00e9rer des licences et les r\u00e9affecter.<\/p>\n<h3>Environnements hybrides<\/h3>\n<p>Dans un environnement hybride, les appareils peuvent \u00eatre joints soit via un AD local, soit via l&rsquo;annuaire Entra. Supprimer un appareil hybride sans avoir confirm\u00e9 son type de jonction peut poser probl\u00e8me, par exemple des \u00e9tats de jonction incoh\u00e9rents. V\u00e9rifiez toujours le statut de jonction hybride avant toute suppression.<\/p>\n<h3>Audit et documentation<\/h3>\n<p>Les op\u00e9rations de nettoyage font g\u00e9n\u00e9ralement partie des <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/guide-complet-de-la-gestion-des-changements-informatiques\/\">processus de gestion informatique<\/a> courants li\u00e9s \u00e0 la conformit\u00e9, aux audits de s\u00e9curit\u00e9 et \u00e0 la gestion des licences. Tenir un journal des appareils supprim\u00e9s et de leur statut permet de garder une documentation coh\u00e9rente et de s&rsquo;assurer qu&rsquo;aucune suppression non autoris\u00e9e n&rsquo;a eu lieu.<\/p>\n<h2>R\u00e9solution des probl\u00e8mes courants<\/h2>\n<h3>Le CSV n&rsquo;est pas export\u00e9<\/h3>\n<p>Ce probl\u00e8me survient lorsque l&rsquo;export du CSV (<a href=\"#step-3\">\u00e9tape 3<\/a>) \u00e9choue. Les causes possibles\u00a0: le chemin n&rsquo;existe pas, l&rsquo;utilisateur ne dispose pas des autorisations n\u00e9cessaires, ou il a utilis\u00e9 un chemin relatif qui ne se r\u00e9sout pas correctement dans la session. Pour y rem\u00e9dier, v\u00e9rifiez le chemin de sortie ou utilisez le chemin complet dans <strong>$env: TEMP<\/strong>.<\/p>\n<h3>Autorisation refus\u00e9e<\/h3>\n<p>Les utilisateurs qui n&rsquo;incluent pas les scopes n\u00e9cessaires lors de la connexion \u00e0 Microsoft Graph peuvent \u00eatre emp\u00each\u00e9s de r\u00e9cup\u00e9rer les donn\u00e9es des appareils. Pour \u00e9viter ou corriger ce refus d&rsquo;autorisation, assurez-vous de disposer du r\u00f4le d&rsquo;administrateur et des autorisations ad\u00e9quats, et d&rsquo;inclure les scopes de l&rsquo;API Graph appropri\u00e9s.<\/p>\n<h3>ApproximateLastSignInDateTime vide<\/h3>\n<p>Un champ <strong>ApproximateLastSignInDateTime<\/strong> vide signifie qu&rsquo;aucune connexion n&rsquo;a jamais eu lieu sur l&rsquo;appareil ou que la t\u00e9l\u00e9m\u00e9trie n&rsquo;est pas disponible. Dans ce cas, recoupez les donn\u00e9es de l&rsquo;appareil avec d&rsquo;autres outils comme Intune, votre RMM ou la derni\u00e8re synchronisation AD avant de le marquer comme inactif.<\/p>\n<h3>Limitation (throttling) de Graph<\/h3>\n<p>Microsoft Graph limite le nombre de requ\u00eates r\u00e9alisables sur une p\u00e9riode donn\u00e9e, en particulier dans les grands environnements. Ajoutez des d\u00e9lais ou une pagination si vous travaillez sur des environnements volumineux.<\/p>\n<h2>Les services NinjaOne qui facilitent les workflows de nettoyage des appareils<\/h2>\n<p>En tant qu&rsquo;outil, NinjaOne prend en charge le nettoyage des appareils inactifs gr\u00e2ce aux services suivants\u00a0:<\/p>\n<ul>\n<li>d\u00e9ploiement de scripts de nettoyage ou de marqueurs de registre sur l&rsquo;ensemble des appareils<\/li>\n<li>reporting des valeurs de registre (CleanupStatus, par exemple) pour un suivi au niveau des terminaux<\/li>\n<li>alertes automatiques sur les terminaux marqu\u00e9s comme inactifs ou sans remont\u00e9e depuis un seuil donn\u00e9<\/li>\n<li>marquage des appareils selon leur r\u00f4le, leur site ou leur statut en vue d&rsquo;une action de suivi<\/li>\n<li>visibilit\u00e9 sur l&rsquo;historique de nettoyage et le renouvellement du parc, tous tenants confondus<\/li>\n<\/ul>\n<p>Ces services font le lien entre le nettoyage des identit\u00e9s dans le cloud et les op\u00e9rations sur les terminaux.<\/p>\n<h2>Gardez vos identit\u00e9s et vos licences bien rang\u00e9es gr\u00e2ce \u00e0 des audits et suppressions r\u00e9guliers des appareils AAD<\/h2>\n<p>Auditer r\u00e9guli\u00e8rement l&rsquo;inventaire des appareils Azure AD est indispensable pour une gouvernance des identit\u00e9s saine et une gestion efficace des licences. Ce guide a d\u00e9taill\u00e9 l&rsquo;utilisation de PowerShell pour exporter votre premier fichier CSV, puis les \u00e9tapes suivantes pour supprimer efficacement les appareils inactifs.<\/p>\n<p><strong>Sujets connexes\u00a0:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.ninjaone.com\/fr\/script-hub\/detection-des-comptes-d-utilisateurs-inactifs-avec-powershell\/\">Automatiser la d\u00e9tection des comptes utilisateurs inactifs avec PowerShell<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/nettoyer-active-directory\/\">Comment nettoyer Active Directory\u00a0: bonnes pratiques et conseils<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/comment-deconnecter-un-pc-windows-10-dazure-ad\/\">Comment d\u00e9connecter un PC Windows 10 d&rsquo;Azure AD<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/comment-retirer-un-pc-dun-domaine-active-directory-local\/\">Comment retirer un PC d&rsquo;un domaine Active Directory local<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Avec le temps, les appareils connect\u00e9s \u00e0 Microsoft Entra ID (anciennement Azure AD) peuvent devenir obsol\u00e8tes, inactifs ou dupliqu\u00e9s. Disposer d&rsquo;une liste des appareils inactifs ou obsol\u00e8tes \u00e0 nettoyer permet aux administrateurs informatiques d&rsquo;agir en connaissance de cause, d&rsquo;optimiser les licences et de conserver un environnement Azure propre. Ce guide explique comment utiliser PowerShell et [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":539917,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[4355],"tags":[],"class_list":["post-886542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-ops"],"acf":[],"modified_by":null,"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/886542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=886542"}],"version-history":[{"count":1,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/886542\/revisions"}],"predecessor-version":[{"id":886543,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/886542\/revisions\/886543"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/539917"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=886542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/categories?post=886542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/tags?post=886542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}