Esportare i profili Intune: quando serve e cosa puoi davvero ottenere
In Intune non esiste un unico pulsante “esporta tutto” che ti restituisca i profili in un formato pronto da reimportare ovunque. Quello che puoi fare, in pratica, è estrarre la configurazione in tre modi diversi: dal portale per una copia rapida, tramite Microsoft Graph per ottenere dati strutturati, oppure con PowerShell per automatizzare raccolta e confronto. La scelta dipende da cosa devi farci dopo: audit, documentazione, migrazione o backup operativo.
Il punto chiave è distinguere tra esportazione leggibile ed esportazione riutilizzabile. La prima serve a verificare impostazioni, assegnazioni e coerenza con le policy aziendali. La seconda richiede quasi sempre Graph API, perché il portale spesso genera file utili da consultare, ma non sempre abbastanza completi per un restore automatico senza lavoro aggiuntivo.
Metodo 1: esportazione dal portale Intune
È il metodo più veloce quando ti serve una fotografia immediata di un singolo profilo o di una lista di profili. Il vantaggio è evidente: non devi preparare script, autenticazioni o permessi applicativi. Il limite è altrettanto evidente: quello che ottieni dipende dalla schermata e dal tipo di policy, quindi non aspettarti un export uniforme per tutto.
In genere il percorso è questo: apri il Microsoft Intune admin center, vai su Devices, poi su Configuration profiles. Da lì selezioni il profilo e cerchi l’azione di esportazione o download disponibile nella pagina del dettaglio. In alcune sezioni trovi un export della lista, in altre un riepilogo del singolo oggetto. La UI cambia nel tempo, quindi non fissarti sul nome esatto del pulsante: cerca azioni come Export, Download o Report.
Questa strada è adatta quando devi rispondere a domande molto concrete: quali impostazioni sono attive, a quali gruppi è assegnata la policy, quando è stata modificata l’ultima volta. Se il tuo obiettivo è documentare lo stato corrente, il portale basta spesso e ti evita di costruire un flusso più complesso del necessario.
Il limite operativo è che l’export dal portale tende a essere più utile come report che come artefatto di migrazione. Se vuoi confrontare ambienti diversi, versionare le policy o rigenerarle in modo ripetibile, ti serve qualcosa di più strutturato.
Metodo 2: Microsoft Graph per estrarre i profili in formato strutturato
Se devi esportare i profili con una logica più seria, Graph è la strada giusta. Ti permette di interrogare gli oggetti Intune come entità API, quindi puoi ottenere JSON pulito, filtrare i campi che ti interessano e salvare il risultato in un repository o in un archivio di compliance. Qui il vantaggio non è solo l’automazione: è la possibilità di avere un output consistente, ripetibile e confrontabile tra più ambienti.
Per iniziare, devi avere i permessi adeguati. Di solito servono diritti amministrativi su Intune e un’app registrata in Entra ID se vuoi lavorare in modo non interattivo. Se ti basta un’esportazione manuale, puoi usare anche l’accesso delegato, ma per una pipeline stabile conviene app registration con permessi applicativi ben delimitati.
Una sequenza tipica è questa:
- Registra un’app in Entra ID e assegna i permessi Graph necessari per leggere i dati Intune.
- Concedi il consenso amministrativo se usi permessi applicativi.
- Recupera i profili con una chiamata Graph e salva il JSON su file.
- Normalizza l’output se vuoi confrontarlo con versioni precedenti.
- Archivia il file in un sistema con controllo versione o retention definita.
Un esempio minimale con curl può essere utile per capire il flusso, anche se nella pratica conviene usare un token ottenuto in modo più controllato tramite una libreria o uno script PowerShell. Ecco un’idea di base:
curl -H "Authorization: Bearer <access_token>" \ -H "Accept: application/json" \ https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations
La risposta contiene l’elenco delle configurazioni gestite. Da lì puoi passare ai dettagli di ciascun oggetto usando l’ID restituito dalla prima chiamata. In molti casi ti servirà anche includere le relazioni, per esempio assegnazioni e impostazioni specifiche del profilo. L’idea non è solo “scaricare un JSON”, ma ricostruire il contesto della policy.
Se vuoi esportare anche le assegnazioni, devi guardare le proprietà correlate agli assignments. Questo è importante perché un profilo senza assegnazione è solo metà del problema: in una migrazione o in un audit vuoi sapere non solo come è fatta la policy, ma anche dove è applicata.
Attenzione a un punto che spesso viene trascurato: alcuni oggetti Intune espongono valori annidati o codificati in modo poco leggibile. L’export via Graph è ottimo per preservare la struttura, ma se il tuo obiettivo è la lettura umana dovrai eventualmente trasformare il JSON in CSV, HTML o Markdown. Qui però il vantaggio è tecnico: la sorgente resta fedele, la presentazione la decidi dopo.
Per verificare che l’esportazione sia affidabile, confronta sempre almeno tre elementi: numero di profili esportati, nome e ID di ciascun profilo, presenza delle assegnazioni. Se uno di questi manca, hai un export parziale e non un inventario completo.
Metodo 3: PowerShell per automatizzare export, confronto e archiviazione
Quando devi farlo più di una volta, PowerShell diventa il compromesso migliore tra velocità e controllo. È utile sia in modalità interattiva sia come job schedulato. In ambiente Microsoft, inoltre, è la scelta più naturale se devi integrare l’export con altre attività: inventario tenant, reporting, backup documentale o verifica di drift tra ambienti.
Puoi usare il modulo Microsoft Graph PowerShell oppure chiamare direttamente Graph con token acquisiti via script. Il modulo semplifica l’autenticazione e rende il codice più leggibile. Un approccio minimale è questo:
Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All"
Get-MgDeviceManagementDeviceConfiguration | Export-Csv .\intune-profiles.csv -NoTypeInformation
Questo esempio è volutamente semplice. Nella realtà, un CSV così grezzo spesso non basta perché molte proprietà sono annidate o serializzate male. Per un export utile devi estrarre campi selezionati e, se serve, aggiungere un secondo passaggio per assegnazioni e impostazioni specifiche. La regola pratica è: CSV per la consultazione rapida, JSON per la fedeltà del dato.
Un pattern più robusto è salvare un file JSON per ogni profilo, usando il nome del profilo e l’ID come chiave di archiviazione. Così eviti collisioni, rendi più semplice il diff e puoi ripristinare il contesto anche se il nome cambia nel tempo.
$profiles = Get-MgDeviceManagementDeviceConfiguration
foreach ($p in $profiles) { $safeName = ($p.DisplayName -replace '[^a-zA-Z0-9\-_.]', '_') $p | ConvertTo-Json -Depth 20 | Out-File ".\export\$safeName-$($p.Id).json" -Encoding utf8
}
Il parametro -Depth conta molto: se lo lasci troppo basso, perdi proprietà annidate e ti ritrovi file apparentemente completi ma in realtà tronchi. È un errore classico quando si esportano oggetti complessi in PowerShell. Dopo l’esecuzione, apri almeno un file e controlla che contenga sezioni come impostazioni, metadata e assegnazioni, se previste dal tipo di profilo.
Se vuoi andare oltre il semplice export, puoi aggiungere un confronto tra snapshot. In pratica salvi il risultato giornaliero e poi usi un diff testuale o una normalizzazione JSON per vedere cosa è cambiato. Questo è molto più utile del confronto visivo in portale quando hai decine o centinaia di policy.
Quale metodo scegliere in base allo scenario
Per documentazione rapida o verifica puntuale, il portale è sufficiente. Per backup operativo, audit ripetibile e confronto tra ambienti, Graph è la scelta migliore. Per automatizzare tutto il ciclo, PowerShell è il livello pratico che trasforma Graph in un processo schedulabile.
In sintesi:
- Portale: rapido, manuale, utile per leggere e controllare un singolo profilo.
- Graph API: strutturato, preciso, adatto a export consistenti e integrazioni.
- PowerShell: automatizzabile, adatto a raccolta periodica, diff e archiviazione.
Se devi preparare una migrazione, non fermarti al profilo singolo. Esporta anche assegnazioni, filtri, gruppi coinvolti e, quando possibile, riferimenti a dipendenze o eccezioni. Il rischio altrimenti è avere un file che sembra completo ma non basta a ricostruire il comportamento reale della policy nel tenant di destinazione.
Verifiche pratiche dopo l’export
Dopo aver esportato i profili, fai tre controlli minimi. Primo: verifica che il numero di oggetti esportati coincida con quello visibile in Intune. Secondo: apri un file e controlla che i campi chiave non siano vuoti o troncati. Terzo: confronta un profilo critico con la sua rappresentazione nel portale per assicurarti che il dato sia coerente.
Se lavori con export programmati, aggiungi anche un controllo di integrità sul file prodotto. Un semplice hash o una verifica della presenza del file basta per accorgerti subito di un job fallito. Non aspettare di scoprire il problema durante un incidente o una revisione di compliance.
Infine, conserva sempre i permessi in modo aderente al principio del minimo privilegio. Se la tua automazione legge solo configurazioni, non assegnarle diritti di scrittura. Se usi un’app registrata, tieni sotto controllo anche la rotazione del segreto o, meglio ancora, passa a certificati o metodi più robusti dove il contesto lo consente.
Un approccio pratico che funziona davvero
La combinazione più solida, nella maggior parte dei tenant, è questa: portale per il controllo spot, Graph per il dato sorgente, PowerShell per l’automazione. Non serve scegliere un solo strumento in assoluto. Serve scegliere il livello giusto per il problema giusto.
Se devi esportare i profili di configurazione Intune una sola volta, il portale può bastare. Se devi farlo con regolarità, costruisci un flusso basato su Graph e salva il risultato in un formato che tenga conto sia della leggibilità sia della fedeltà tecnica. È lì che l’esportazione smette di essere una semplice copia e diventa uno strumento utile per operazioni, audit e cambi controllati.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.