{"id":916685,"date":"2026-10-29T17:10:17","date_gmt":"2026-10-29T17:10:17","guid":{"rendered":"https:\/\/www.ninjaone.com\/blog\/pulizia-dispositivi-azure-ad-obsoleti\/"},"modified":"2026-10-29T17:10:18","modified_gmt":"2026-10-29T17:10:18","slug":"pulizia-dispositivi-azure-ad-obsoleti","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/it\/blog\/pulizia-dispositivi-azure-ad-obsoleti\/","title":{"rendered":"Come usare PowerShell per esportare l\u2019inventario dei dispositivi Azure inattivi da eliminare"},"content":{"rendered":"<p>Con il passare del tempo, i dispositivi collegati a <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/business\/identity-access\/microsoft-entra-id\" target=\"_blank\" rel=\"noopener\">Microsoft Entra ID<\/a> (precedentemente noto come Azure AD) possono diventare obsoleti, inattivi o duplicati. Disporre di un elenco dei dispositivi inattivi o obsoleti da eliminare aiuta gli amministratori IT a prendere decisioni consapevoli, ottimizzare le licenze e mantenere ordinato l\u2019ambiente Azure.<\/p>\n<p>Questa guida mostra come usare <a href=\"https:\/\/www.ninjaone.com\/it\/it-hub\/endpoint-management\/cos-e-powershell\/\">PowerShell<\/a> e le API Microsoft Graph per identificare, esportare e automatizzare la <strong>pulizia di Azure AD<\/strong> dai <strong>dispositivi obsoleti<\/strong> aggiunti alla directory.<\/p>\n<p>Ti serve una guida visiva per comprendere meglio l\u2019argomento? Guarda il nostro video: <a href=\"https:\/\/www.ninjaone.com\/videos\/powershell\/how-to-use-powershell-to-export-inactive-azure-device-inventory-for-cleanup\/\">Come usare PowerShell per esportare l\u2019inventario dei dispositivi Azure inattivi da eliminare<\/a>.<\/p>\n<h2>Come esportare il file CSV dei dispositivi obsoleti aggiunti ad Azure AD: guida passo passo<\/h2>\n<p>Per rimuovere i dispositivi inattivi da Azure AD, ti serve prima un elenco dei dispositivi inattivi. Questa sezione ti accompagna passo passo nell\u2019esportazione del file CSV tramite PowerShell.<\/p>\n<p>\ud83d\udccc <strong>Prerequisiti<\/strong>:<\/p>\n<p>Per il processo principale di esportazione del file CSV servono i seguenti elementi:<\/p>\n<ul>\n<li>Autorizzazioni di amministratore di Azure AD o Entra ID<\/li>\n<li>Accesso alle API Microsoft Graph con le seguenti autorizzazioni:\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>Modulo Microsoft.Graph installato<\/li>\n<\/ul>\n<p>Inoltre, potresti voler disporre di un agente RMM e dell\u2019accesso al registro di sistema per i <a href=\"#tag-devices\">passaggi successivi all\u2019esportazione del CSV<\/a>.<\/p>\n<h3>Passaggio 1: connettiti a Microsoft Graph e recupera l\u2019elenco dei dispositivi<\/h3>\n<p>Segui questi passaggi:<\/p>\n<ol>\n<li>Connettiti a Microsoft Graph e autentica la connessione con il comando:<\/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>Recupera l\u2019elenco dei dispositivi con il comando: <strong>$devices = Get-MgDevice -All<\/strong><\/li>\n<\/ol>\n<h3>Passaggio 2: filtra i dispositivi Azure obsoleti o inattivi<\/h3>\n<p>Identifica i dispositivi Azure obsoleti o inattivi in base alla data dell\u2019ultima attivit\u00e0. Per farlo, definisci la soglia di inattivit\u00e0 con il comando:<\/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> SUGGERIMENTO: <\/strong>per ottenere un elenco pi\u00f9 accurato, puoi anche escludere gli account di servizio e gli oggetti ibridi con questo comando:<\/p>\n<p style=\"padding-left: 40px;\"><strong>$inactiveDevices = $inactiveDevices | Where-Object {<\/strong><br \/>\n<strong>      # Exclude Hybrid Azure AD Joined devices<\/strong><br \/>\n<strong>      $_.DeviceTrustType -ne &#8220;HybridAzureADJoined&#8221; -and<\/strong><br \/>\n<strong>      # Exclude Personally Owned devices (keep only Corporate owned)<\/strong><br \/>\n<strong>      $_.DeviceOwnership -eq &#8220;Company&#8221;<\/strong><br \/>\n<strong>}<\/strong><\/p>\n<h4>Metodo alternativo: come individuare gli utenti inattivi in Azure Active Directory<\/h4>\n<p>Puoi individuare gli utenti inattivi anche dall\u2019interfaccia di amministrazione di Entra. Vai su <strong>Monitoraggio &gt; Accessi<\/strong>, quindi filtra gli utenti che non hanno effettuato l\u2019accesso entro un intervallo di tempo definito (ad esempio 30, 60 o 90 giorni).<\/p>\n<h3 id=\"step-3\">Passaggio 3: esporta il file CSV<\/h3>\n<p>Per esportare il file CSV, usa questo comando:<\/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>Una volta esportato, il CSV pu\u00f2 essere usato per la documentazione, i flussi di lavoro di approvazione e l\u2019importazione negli script di pulizia.<\/p>\n<h2 id=\"tag-devices\">Come contrassegnare i dispositivi per la pulizia locale e come rimuovere i computer obsoleti da Active Directory<\/h2>\n<p>Oltre ai tre passaggi principali elencati sopra, puoi proseguire il processo di pulizia con i metodi seguenti:<\/p>\n<h3>Contrassegnare i dispositivi per la pulizia locale nel Registro di sistema di Windows tramite PowerShell<\/h3>\n<p>Contrassegnare i dispositivi \u00e8 utile quando puoi accedervi tramite RMM o script. Una volta contrassegnati, gli strumenti RMM e di scripting riescono a identificare quali dispositivi sono considerati obsoleti e a coordinare in sicurezza le azioni di pulizia.<\/p>\n<p>Esegui questo comando in PowerShell:<\/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<strong><code>Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Org\\DeviceCleanup\" -Name \"MarkedDate\" -Value<\/code> (Get-Date).ToString(&#8220;u&#8221;)<\/strong><\/p>\n<p>Esegui la riga seguente nel Prompt dei comandi per verificare che le modifiche siano state applicate:<\/p>\n<p style=\"padding-left: 40px;\"><strong>reg query HKLM\\SOFTWARE\\Org\\DeviceCleanup<\/strong><\/p>\n<h3>Rimuovere i dispositivi obsoleti da Azure AD<\/h3>\n<p>Ci sono due modi per eliminare i dispositivi obsoleti, inattivi o duplicati su Azure AD: tramite rimozione con Microsoft Graph oppure tramite il portale di Azure.<\/p>\n<h4>Eliminare un dispositivo tramite Microsoft Graph<\/h4>\n<p>Per rimuovere un dispositivo direttamente tramite Graph:<\/p>\n<p style=\"padding-left: 40px;\"><strong>Remove-MgDevice -DeviceId $device.Id<\/strong><\/p>\n<p>\u26a0\ufe0f <strong>Importante: <\/strong>l\u2019esecuzione di questo comando comporta rimozioni immediate e permanenti. I dispositivi non vengono spostati in un cestino. Procedi con cautela.<\/p>\n<h4>Eliminare un dispositivo obsoleto aggiunto ad AD tramite il portale di Azure<\/h4>\n<p>Il portale di Azure dispone di una caratteristica di eliminazione in blocco che consente di rimuovere pi\u00f9 dispositivi inattivi contemporaneamente. Vai su <strong>Portale di Azure &gt; Entra ID &gt; Dispositivi &gt; Azioni in blocco &gt; Elimina<\/strong>.<\/p>\n<h2>Altri aspetti da considerare quando elimini o contrassegni come inattivi i dispositivi aggiunti ad AD<\/h2>\n<h3>Autenticazione a pi\u00f9 fattori e criteri di accesso condizionale<\/h3>\n<p>Quando un dispositivo \u00e8 legato all\u2019accesso di un utente, verifica se rientra nei flussi di <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-security\/what-is-multifactor-authentication-mfa\/\">MFA<\/a> o di accesso condizionale. Eliminare un dispositivo ancora legato ai requisiti di accesso di un utente pu\u00f2 impedirgli di accedere alle applicazioni aziendali, alle <a href=\"https:\/\/www.ninjaone.com\/it\/it-hub\/sicurezza-degli-endpoint\/cos-e-una-rete-privata-virtuale-vpn\/\">VPN<\/a> e ad altri file importanti.<\/p>\n<h3>Licenze<\/h3>\n<p>Intune, Microsoft Defender e altri strumenti Microsoft prevedono spesso una licenza per ogni dispositivo registrato. I dispositivi inattivi e duplicati di norma continuano a consumare queste licenze. Se noti di avere molti dispositivi obsoleti nella tua organizzazione, valuta una pulizia per liberare licenze da destinare ad altri usi.<\/p>\n<h3>Ambienti ibridi<\/h3>\n<p>In un ambiente ibrido, i dispositivi possono essere aggiunti tramite l\u2019AD on-premise oppure tramite la directory Entra. Eliminare un dispositivo ibrido senza averne verificato il tipo di aggiunta pu\u00f2 causare problemi, come stati di aggiunta incoerenti. Verifica sempre lo stato di aggiunta ibrida prima di procedere all\u2019eliminazione.<\/p>\n<h3>Audit e documentazione<\/h3>\n<p>Le azioni di pulizia fanno solitamente parte dei <a href=\"https:\/\/www.ninjaone.com\/it\/blog\/gestione-del-cambiamento-it\/\">processi di gestione IT<\/a> di routine legati a conformit\u00e0, audit di sicurezza e gestione delle licenze. Tenere un registro dei dispositivi rimossi e del loro stato aiuta a mantenere coerente la documentazione e garantisce che non siano state effettuate eliminazioni non autorizzate.<\/p>\n<h2>Risoluzione dei problemi pi\u00f9 comuni<\/h2>\n<h3>Il CSV non viene esportato<\/h3>\n<p>Questo problema si verifica quando l\u2019esportazione del CSV (<a href=\"#step-3\">Passaggio 3<\/a>) non va a buon fine. Le cause possibili sono: il percorso non esiste, l\u2019utente non dispone delle autorizzazioni adeguate oppure ha usato un percorso relativo che in quella sessione non viene risolto correttamente. Per risolvere, verifica il percorso di output oppure usa il percorso completo in <strong>$env: TEMP<\/strong>.<\/p>\n<h3>Autorizzazione negata<\/h3>\n<p>Gli utenti che non includono gli scope necessari durante la connessione a Microsoft Graph possono vedersi bloccato il recupero dei dati dei dispositivi. Per prevenire o risolvere il problema, assicurati di avere il ruolo di amministratore e le autorizzazioni adeguate e di includere gli scope corretti delle API Graph.<\/p>\n<h3>ApproximateLastSignInDateTime vuoto<\/h3>\n<p>Un valore <strong>ApproximateLastSignInDateTime<\/strong> vuoto indica che non \u00e8 mai stato effettuato un accesso dal dispositivo oppure che la telemetria non \u00e8 disponibile. In questi casi, confronta i dati del dispositivo con altri strumenti come Intune, l\u2019RMM o l\u2019ultima sincronizzazione di AD prima di contrassegnarlo come inattivo.<\/p>\n<h3>Throttling di Graph<\/h3>\n<p>Microsoft Graph limita il numero di richieste che puoi effettuare in un determinato intervallo di tempo, soprattutto negli ambienti di grandi dimensioni. Negli ambienti estesi, aggiungi ritardi o paginazione.<\/p>\n<h2>I servizi NinjaOne a supporto dei flussi di lavoro di pulizia dei dispositivi<\/h2>\n<p>Come strumento, NinjaOne supporta la pulizia dei dispositivi inattivi attraverso i seguenti servizi:<\/p>\n<ul>\n<li>Distribuzione di script di pulizia o di marcatori nel registro di sistema su pi\u00f9 dispositivi<\/li>\n<li>Reporting dei valori di registro (ad esempio CleanupStatus) per il monitoraggio a livello di endpoint<\/li>\n<li>Avvisi automatizzati sugli endpoint contrassegnati come inattivi o che non hanno effettuato il check-in entro una determinata soglia<\/li>\n<li>Assegnazione di tag ai dispositivi in base a ruolo, sede o stato per le azioni successive<\/li>\n<li>Visibilit\u00e0 su tutti i tenant sulla cronologia delle pulizie e sul turnover dei dispositivi<\/li>\n<\/ul>\n<p>Questi servizi aiutano a colmare il divario tra la pulizia delle identit\u00e0 nel cloud e la gestione operativa degli endpoint.<\/p>\n<h2>Mantieni ordinate identit\u00e0 e licenze con audit e rimozioni periodiche dei dispositivi AAD<\/h2>\n<p>Controllare regolarmente l\u2019inventario dei dispositivi Azure AD \u00e8 essenziale per una governance delle identit\u00e0 pulita e per una gestione efficiente delle licenze. Questa guida ha spiegato come usare PowerShell per esportare il file CSV di partenza e quali sono i passaggi successivi per rimuovere in modo efficiente i dispositivi inattivi.<\/p>\n<p><strong>Argomenti correlati:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/rilevamento-degli-account-inattivi-con-powershell\/\">Automatizza il rilevamento degli account utente inattivi con PowerShell<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/blog\/come-ripulire-active-directory\/\">Come fare pulizia in Active Directory: best practice e consigli<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/blog\/disconnettere-un-pc-windows-da-azure-ad\/\">Come scollegare un PC Windows 10 da Azure AD<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/blog\/come-rimuovere-pc-da-dominio-ad\/\">Come rimuovere un PC da un dominio Active Directory locale<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Con il passare del tempo, i dispositivi collegati a Microsoft Entra ID (precedentemente noto come Azure AD) possono diventare obsoleti, inattivi o duplicati. Disporre di un elenco dei dispositivi inattivi o obsoleti da eliminare aiuta gli amministratori IT a prendere decisioni consapevoli, ottimizzare le licenze e mantenere ordinato l\u2019ambiente Azure. Questa guida mostra come usare [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":539915,"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":[4354],"tags":[],"class_list":["post-916685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operazioni-it"],"acf":[],"modified_by":null,"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/916685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=916685"}],"version-history":[{"count":1,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/916685\/revisions"}],"predecessor-version":[{"id":916686,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/916685\/revisions\/916686"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media\/539915"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=916685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/categories?post=916685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/tags?post=916685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}