Punti chiave
- Microsoft Graph API è un endpoint REST unificato che offre accesso programmatico ai servizi Microsoft 365, tra cui Intune, Microsoft Entra ID, Exchange Online e Teams.
- Gli MSP e i team di enterprise informatica usano Microsoft Graph API per monitorare la conformità dei dispositivi, verificare l’utilizzo delle licenze, applicare policy in modo automatizzato, avviare flussi di lavoro di remediation attivati da avvisi e creare dashboard di reporting cross-tenant.
- Prima di connetterti a Microsoft Graph PowerShell SDK ti servono un tenant Microsoft 365 con accesso come amministratore globale o amministratore delegato, l’SDK installato con PowerShell 5.1 o versione successiva e gli ambiti di autorizzazione adeguati alle operazioni che intendi eseguire.
- Lo stato di conformità dei dispositivi, l’elenco dei dispositivi non conformi e i dettagli dei singoli dispositivi si possono recuperare con query Get-MgDeviceManagementManagedDevice; le azioni di blocco e cancellazione da remoto si attivano con i comandi Invoke-MgDeviceManagement.
- Le policy distribuite tramite Microsoft Graph si possono verificare a livello di endpoint controllando HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ nel Registro di sistema di Windows; lo stato di registrazione del dispositivo si verifica con dsregcmd /status.
- I token di autenticazione di Microsoft Graph vanno protetti usando i criteri di gruppo locali per disattivare la memorizzazione delle credenziali e limitare l’esecuzione di PowerShell ai soli script firmati.
Microsoft Graph API è un endpoint unificato che offre agli amministratori l’accesso programmatico a diversi servizi Microsoft 365 – come Intune, Microsoft Entra (in precedenza Azure AD), Exchange Online, Teams e molto altro – tramite Windows PowerShell.
I casi d’uso sono numerosi, soprattutto negli ambienti enterprise. Microsoft Graph API può essere utilizzata per:
- Monitorare la conformità e lo stato di salute dei dispositivi
- Gestire l’utilizzo e l’assegnazione delle licenze
- Gestire policy e gruppi in modo automatizzato
- Creare flussi di lavoro di avviso e remediation
- Generare report cross-tenant per le dashboard degli MSP
Prerequisiti:
- Devi disporre di un tenant Microsoft 365 con accesso come amministratore globale o amministratore delegato.
- Devi registrare Microsoft Graph in Microsoft Entra (in precedenza Azure AD).
- Per alcune azioni potrebbero servirti le licenze Intune e Microsoft Entra Premium.
- Ti servirà una baseline GPO per proteggere i token di autenticazione e garantire l’esecuzione sicura degli script.
Per una panoramica visiva rapida, guarda la nostra video guida: Usare Microsoft Graph API con Windows PowerShell per monitorare e gestire i client Microsoft 365.
Come installare Microsoft Graph PowerShell SDK
Prerequisiti:
- È consigliabile usare Windows PowerShell 7 o versione successiva. Windows PowerShell 5.1 è il requisito minimo. (Verifica la tua versione di PowerShell )
- Devi avere installato .NET Framework 4.7.2 o versione successiva.
- PowerShellGet deve essere aggiornato all’ultima versione. Per farlo, digita Install-Module PowerShellGet in Windows PowerShell e premi Invio.
- I criteri di esecuzione devono essere impostati su remote signed o su un valore meno restrittivo. Per verificare di avere i criteri corretti, digita Get-ExecutionPolicy in Windows PowerShell e premi Invio. Per impostare i criteri di esecuzione su remote signed, digita Set-ExecutionPolicy -ExecutionPolicy RemoteSigned e premi Invio.
Passaggi:
- Apri il menu Start e cerca Windows PowerShell.
- Fai clic con il tasto destro su Windows PowerShell > Esegui come amministratore.
- Digita Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force e premi Invio.
Nota: questa modifica si applica solo al profilo utente corrente. Se vuoi installare Microsoft Graph PowerShell SDK su tutti i profili utente, cambia -Scope in AllUsers.
- Conferma l’installazione quando richiesto.
Come connettersi a Microsoft Graph PowerShell SDK
- Digita
Connect-MgGraph -Scopes "User.Read.All",”DeviceManagementManagedDevices.Read.All”,”Directory.Read.All” in Windows PowerShell e premi Invio per connetterti.
Nota: in questo modo ottieni l’accesso all’intero Graph. Puoi modificare le autorizzazioni in base alle tue esigenze cambiando quelle indicate dopo -Scopes. Per consultare tutte le autorizzazioni disponibili, digita Find-MgGraphCommand -command Get-MgGroup.
- Se hai già effettuato l’accesso, passa al punto successivo. In caso contrario, segui le istruzioni per accedere.
- Puoi anche usare Get-MgContext per recuperare dettagli specifici, come Client ID, tenant ID, ambiti autorizzati e altro ancora.
Nota: puoi usare -TenantID per l’accesso multi-tenant e -ClientID per le applicazioni registrate.
Come recuperare le informazioni sui dispositivi e lo stato di conformità
Per elencare tutti i dispositivi gestiti da Intune, digita questo comando e premi Invio:
Get-MgDeviceManagementManagedDevice |
Select DisplayName, ComplianceState, OperatingSystem
Se all’interno di quell’elenco vuoi individuare i dispositivi non conformi, digita questo comando e premi Invio:
Get-MgDeviceManagementManagedDevice |
Where-Object {$_.ComplianceState -ne “compliant”}
Puoi anche individuare dispositivi specifici cercandoli per nome:
Get-MgDeviceManagementManagedDevice -ManagedDeviceId <GUID>
Sostituisci <GUID> con l’ID del dispositivo che stai cercando.
Come monitorare l’attività degli utenti e le licenze
Per elencare tutti gli utenti con i rispettivi dettagli sulle licenze, digita questo comando e premi Invio:
Get-MgUser | Select-Object DisplayName, UserPrincipalName, AssignedLicenses
Per individuare gli utenti senza licenza, digita questo comando e premi Invio:
Get-MgUser | Where-Object { !$_.AssignedLicenses }
Recupero dell’attività di accesso (richiede AuditLog.Read.All):
Get-MgAuditLogSignIn -Top 50 | Select UserDisplayName, UserPrincipalName, Status, AppDisplayName
Come automatizzare la remediation e l’applicazione delle policy
Se un dispositivo viene smarrito o compromesso, puoi cancellarne i dati da Microsoft Graph digitando questo comando e premendo Invio:
Invoke-MgDeviceManagementManagedDeviceWipe -ManagedDeviceId <GUID>
Sostituisci <GUID> con l’ID del dispositivo smarrito o compromesso.
Se vuoi bloccare un dispositivo da remoto:
Invoke-MgDeviceManagementManagedDeviceRemoteLock -ManagedDeviceId <GUID>
Sostituisci <GUID> con l’ID del dispositivo smarrito o compromesso.
Se vuoi assegnare una policy di conformità, digita questo comando e premi Invio:
New-MgDeviceManagementCompliancePolicyAssignment -CompliancePolicyId <PolicyID> -Target @{ “@odata.type” = “#microsoft.graph.groupAssignmentTarget”; “groupId” = “<EntraGroupId>” }
Sostituisci <PolicyID> con l’ID della policy che vuoi assegnare. Sostituisci <EntraGroupId> con il gruppo a cui vuoi assegnare la policy.
Questi comandi sono utili se vuoi impostare una remediation automatizzata su ambienti diversi. Puoi anche attivarli automaticamente quando il tuo sistema riceve un avviso dallo strumento di gestione degli endpoint.
Come verificare le policy a livello di endpoint (Registro di sistema di Windows, CMD)
Puoi verificare se le policy applicate tramite Microsoft Graph sono andate a buon fine controllando il Registro di sistema di Windows.
Ad esempio, puoi aprire HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ nel Registro di sistema di Windows e controllare se le policy sono state applicate (ad esempio Defender, policy di crittografia).
Puoi anche usare il Prompt dei comandi per registrare il dispositivo in un MDM e monitorarne ulteriormente lo stato.
- Apri il Prompt dei comandi come amministratore.
- Digita questo comando e premi Invio: start ms-device-enrollment:?mode=mdm
Per verificare lo stato di aggiunta/registrazione, digita: dsregcmd /status
Come proteggere l’uso dei token con i criteri di gruppo locali e i controlli sugli endpoint
Puoi usare i criteri di gruppo locali per proteggere i token di autenticazione di Microsoft Graph e l’automazione PowerShell sui dispositivi gestiti seguendo questi passaggi:
- Apri l’Editor Criteri di gruppo locali.
- Vai a Configurazione del computer > Impostazioni di Windows > Impostazioni sicurezza > Criteri locali > Opzioni di sicurezza
- Individua Non consentire la memorizzazione di password e credenziali per l’autenticazione di rete e fai doppio clic.
- Imposta su Abilitato.
- Fai clic su Applica > OK.
- Vai a Configurazione del computer > Modelli amministrativi > Componenti di Windows > Windows PowerShell.
- Individua Attiva esecuzione script e fai doppio clic.
- Imposta su Abilitato.
- Apri il menu a discesa e seleziona Consenti solo script firmati.
- Fai clic su Applica > OK.
Altri aspetti da considerare nell’uso di Microsoft Graph API
- Puoi usare Graph Explorer per testare l’API online senza installarla sui tuoi dispositivi.
- Assicurati di applicare le autorizzazioni a livello di applicazione per i processi in background e gli script multi-tenant.
- Puoi applicare limiti di frequenza e logiche di ripetizione agli script in produzione.
- Puoi usare le policy di accesso condizionale di Microsoft Entra ID per limitare l’uso di Graph sui dispositivi non gestiti.
Risoluzione dei problemi di Microsoft Graph API
| Problema | Cause possibili | Soluzioni |
| Microsoft Graph non funziona. | Mancano alcune autorizzazioni: il tenant non è abilitato a eseguire quel comando. | Assegna al tenant le autorizzazioni adeguate. In alternativa, puoi usare un account amministratore con autorizzazioni complete. |
| Il dispositivo non compare nella query. | Significa che il dispositivo non è gestito in Intune oppure non è sincronizzato correttamente. | Controlla la registrazione in Microsoft Endpoint Management (MEM) e lo stato del dispositivo in Microsoft Entra (in precedenza AAD). |
| Hai raggiunto il limite di frequenza dell’API. | Ci sono troppe query simultanee. | Usa il comando -Top e il batching. |
| Mancano i valori di registro relativi a una policy specifica. | La policy non è stata applicata. | Verifica il targeting dei gruppi e avvia una sincronizzazione per applicare la modifica al dispositivo. |
I servizi NinjaOne
NinjaOne integra Microsoft Graph API in diversi modi:
- Automatizza gli script Microsoft Graph sui tenant dei clienti con uno strumento di PowerShell remoto
- Configura avvisi per segnalare agli amministratori quando un dispositivo non è più conforme, attivando la remediation tramite Graph
- Applica tag ai dispositivi con campi personalizzati basati sui metadati di Microsoft Graph (ad esempio stato di conformità, livello di rischio e così via)
- Pianifica attività di reporting usando le informazioni di Microsoft Graph e centralizza la visibilità a livello di tenant per gli MSP.
Monitora i dispositivi gestiti con Microsoft Graph API
Microsoft Graph API è uno strumento potente che offre agli amministratori un controllo centralizzato e automatizzato degli account Microsoft 365 della propria organizzazione tramite Windows PowerShell. Dopo averla installata e dopo esserti connesso con PowerShell, puoi usarla per monitorare gli utenti e la conformità dei dispositivi e per automatizzare azioni sui dispositivi e assegnazioni di policy.
Puoi verificare queste assegnazioni di policy controllando il Registro di sistema di Windows e usando il Prompt dei comandi. Puoi inoltre potenziare i tuoi flussi di lavoro con le funzionalità di automazione e visibilità di NinjaOne.
Articoli correlati:
- Potenziare la gestione dei ticket di NinjaOne con l’integrazione SMTP di Microsoft 365
- Integrare on-premise e cloud con l’aggiunta ad Azure AD ibrida
- Guida completa al monitoraggio dei sistemi IT
- Strumenti di monitoraggio basati sul cloud: le 5 soluzioni migliori del 2026
- Il monitoraggio degli endpoint spiegato con un esempio
Guida rapida
Le funzionalità di NinjaOne con Microsoft Graph API e Windows PowerShell:
Integrazione con Microsoft Graph API
NinjaOne supporta l’integrazione con Microsoft Graph API e PowerShell, in particolare per:
- Service Principal Authentication (SPA):
- NinjaOne offre la Service Principal Authentication per i backup di Microsoft 365
- Richiede un amministratore globale durante la configurazione iniziale
- Supporta vari ambiti e autorizzazioni per i diversi servizi Microsoft 365
- Integrazione con PowerShell:
- NinjaOne mette a disposizione moduli e script PowerShell per interagire con l’API
- Supporta il flusso di autorizzazione OAuth 2.0
- Offre script di esempio per automatizzare attività come:
- Gestione delle vulnerabilità
- Generazione dei token
- Gestione delle richieste API
Aspetti principali
- L’integrazione consente di monitorare e gestire i client Microsoft 365
- Supporta operazioni come:
- Backup e ripristino
- Gestione degli utenti
- Recupero delle informazioni sui dispositivi
- Autorizzazione e gestione dei token
