Outil gratuit · PowerShell
Intune Diagnostics
Pourquoi ce poste ne fait pas ce que le portail annonce — en un rapport.
Un script PowerShell qui rassemble sur un poste Windows tout ce qu'Intune éparpille — journaux de l'extension de gestion, une vingtaine de canaux d'événements, le registre, dsregcmd, les certificats, le TPM, BitLocker et la trace d'Autopilot —, décode chaque code d'erreur et croise les sources. Il en sort un rapport HTML et PDF : ce qui va, ce qui ne va pas, et dans quel fichier, à quelle ligne. Le code est publié ci-dessous en entier, à lire avant de le lancer.
Ce que vous obtenez
Un rapport, onze sections.
Le même contenu en HTML — recherche plein texte, filtres de sévérité — et en PDF, avec sommaire cliquable. Les fichiers bruts sont rangés à côté, et chaque constat renvoie au fichier et à la ligne où il a été lu. Le rapport est rédigé en français ou en anglais, au choix.
Synthèse
Un score de santé, les compteurs, et les priorités dans l'ordre où les traiter, chacune avec sa remédiation en une ligne.
Contrôles de cohérence
Plus de soixante-dix contrôles qui croisent les sources — y compris ceux qui passent, et ceux qui n'ont pas pu tourner, avec leur motif.
Identité et inscription
dsregcmd, inscriptions MDM, tâches de synchronisation, certificats de la machine.
Autopilot
Le profil reçu, le déploiement étape par étape jusqu'à celle où il s'est arrêté, l'ESP et les prérequis. Chaque valeur dit qui la documente.
Catalogue des codes d'erreur
Chaque code en hexadécimal, décimal et décimal signé, ce qu'il veut dire, sa cause probable, quoi faire — et chaque fichier, chaque ligne où il apparaît.
Chronologie
Toutes les sources fusionnées, la plus récente en tête : ce qui a cassé d'abord, et ce qui n'en est que la conséquence.
Déploiement des applications
L'état de chaque application Win32 vu par l'extension de gestion, à côté de ce qui est vraiment installé.
Stratégies et conflits
Ce que le client MDM applique réellement, et les paramètres que deux sources se disputent — invisibles depuis le portail.
Sécurité et système
TPM, BitLocker, Defender, l'extension de gestion, l'horloge, le proxy.
Connectivité
DNS, TCP puis TLS vers les adresses Intune, Entra ID et Autopilot, et l'émetteur du certificat présenté : de quoi voir une inspection TLS. L'heure se teste en NTP.
Windows Update et versions
Ce qui gouverne les mises à jour, ce que le poste a réellement reçu, ce que Delivery Optimization a déplacé, et l'âge des applications.
Avant de commencer
Les prérequis.
Le strict nécessaire tient en deux lignes : Windows PowerShell, livré avec Windows, et une console lancée en administrateur sur le poste à diagnostiquer.
| Prérequis | Pour | Précisions |
|---|---|---|
| RequisWindows 10 ou 11, avec Windows PowerShell 5.1 | Le script tout entier. | Livré avec Windows. PowerShell 7 fonctionne aussi. |
| RequisUne console lancée en administrateur, ou SYSTEM | Les journaux d'événements, les clés HKLM, MdmDiagnosticsTool. | Sans élévation, le script le dit et continue, mais le rapport est incomplet par construction. |
| FacultatifUn accès HTTPS aux adresses Microsoft | La section Connectivité, et la mesure de dérive de l'horloge. | Quinze adresses Intune, Entra ID, Autopilot, Store et Windows Update — seize sur un TPM firmware. L'heure se teste en NTP (UDP 123), la détection d'internet en HTTP. -SkipConnectivityTests pour n'en appeler aucune. |
| FacultatifDe la place sur le disque | Les copies des journaux, à côté du rapport. | Quelques Mo en Quick, quelques dizaines en Standard, jusqu'à plusieurs centaines en Full. |
| FacultatifUn dossier de sortie au chemin court | Les exports .reg et .evtx. | reg.exe et wevtutil échouent au-delà de 260 caractères. Le défaut, %ProgramData%\IntuneDiagReporter, convient. |
| FacultatifUne stratégie d'exécution qui autorise un script local | Lancer le fichier. | Sinon, pour ce lancement seulement : powershell -ExecutionPolicy Bypass -File … |
Le script n'utilise que ce que Windows fournit : PowerShell, wevtutil, reg.exe, dsregcmd et MdmDiagnosticsTool. Le PDF est écrit par un générateur intégré, sans navigateur. Rien n'est installé sur le poste.
Transparence
Ce qu'il lit. Ce qu'il écrit. Ce qu'il ne fait jamais.
Un diagnostic qui modifie le poste qu'il diagnostique fausse sa propre réponse. Chaque affirmation ci-dessous se vérifie dans le code, plus bas.
Il lit
- Les journaux : l'extension de gestion Intune (IME), la jonction au domaine, Panther, CBS, ConfigMgr en co-gestion, le Portail d'entreprise, le profil Autopilot téléchargé — 26 sources en tout.
- 26 canaux d'événements (MDM, Entra ID, Autopilot, BitLocker, Defender…) et 17 branches de registre.
- L'état live :
dsregcmd /status, tâches de synchronisation, certificats, TPM, BitLocker, Defender, horloge, proxy, réglages de la page d'état d'inscription — et la sortie deMdmDiagnosticsTool.
Il écrit
- Un dossier
IntuneDiag_<poste>_<date>sous%ProgramData%\IntuneDiagReporter, ou là où-OutputRootl'indique : le rapport HTML et PDF, deux JSON, et les copies brutes dansRaw\. - Un ZIP du tout, à côté du dossier.
-NoArchivepour s'en passer. - Ces copies contiennent ce que contiennent les journaux : noms d'utilisateurs, identifiants d'appareil, noms d'applications. Relisez-les avant de transmettre l'archive.
Il ne fait jamais
- Modifier un réglage, une clé de registre, une stratégie ou une inscription.
- Installer quoi que ce soit.
- Envoyer le rapport ailleurs que là où vous le demandez : un partage (
-UploadPath), votre conteneur Azure (-UploadSasUri) ou votre espace Log Analytics. Sans ces paramètres, rien ne quitte le poste. - Envoyer quoi que ce soit à LB IT Cloud. Il n'y a ni télémétrie, ni licence, ni compte.
Utilisation
Copier, coller, lancer.
Copier
Coller et enregistrer
IntuneDiagReporter.ps1, avec l'encodage UTF-8 avec BOM : sans lui, Windows PowerShell 5.1 lit mal les quelques caractères accentués du fichier.Lancer
powershell -ExecutionPolicy Bypass -File .\IntuneDiagReporter.ps1Sans argument, la fenêtre d'options s'ouvre : on choisit, on lance, et le rapport s'ouvre à la fin.
Les paramètres
-Depth | Quick (≈ 1 min), Standard (défaut) ou Full (tout, 15 min ou plus). |
-SinceDays | Fenêtre d'analyse, en jours. Défaut : 14. |
-OutputRoot | Dossier de sortie. Défaut : %ProgramData%\IntuneDiagReporter. Gardez-le court. |
-OpenReport | Ouvre le rapport à la fin. |
-Console | Un verdict en un écran, en ASCII — pour un poste bloqué sur l'Enrollment Status Page, en Maj+F10. |
-Silent | Aucune interface, code de sortie seul : 0 sain, 1 au moins un constat critique. |
-NoPdf / -NoArchive | Pas de PDF / pas de ZIP. |
-PdfEngine | Native (défaut, sans navigateur) ou Edge. |
-SkipConnectivityTests | Aucune connexion sortante. |
-SkipMdmDiagnosticsTool | Ne lance pas l'outil natif, s'il est lent sur votre parc. |
-UploadPath / -UploadSasUri | Dépose l'archive sur un partage, ou dans un conteneur Azure Blob. |
-LogAnalytics… | Envoi direct vers Azure Monitor, pour agréger plusieurs postes. |
-JsonPretty / -JsonTimelineLimit / -JsonMessageLimit | Forme et taille des exports JSON. |
En mode normal
Une fenêtre pour choisir les options.
Lancé sans argument sur un poste avec un bureau, le script ouvre cette fenêtre : la destination, la profondeur, et ce qu'il faut produire. Pas de paramètre à retenir. Cliquez : c'est la même fenêtre, et le sélecteur de langue la bascule entièrement, comme le fait le script.
Diagnostic Intune et Autopilot
Collecte les journaux, le registre et l'état du poste, puis produit un rapport qui explique ce qu'il a trouvé.
La même chose, en ligne de commande
Chaque choix dans la fenêtre a son paramètre. La ligne ci-dessous suit vos clics : c'est celle à mettre dans une tâche planifiée, un script de remédiation ou une session à distance.
powershell -ExecutionPolicy Bypass -File .\IntuneDiagReporter.ps1 -OpenReport -Language fr
La fenêtre ne s'ouvre jamais quand elle pourrait bloquer quelque chose :
- dès qu'un paramètre est passé : une ligne de commande est une intention explicite ;
- sous SYSTEM, donc jamais lors d'un déploiement Intune ;
- dans une session sans bureau.
-Consoledonne alors un verdict en un écran,-Silentun simple code de sortie.
Lancée sans droits d'administrateur, la fenêtre l'affiche en rouge avant que vous ne lanciez quoi que ce soit.
Le code
Le script, en entier.
Découpé en modules, chacun expliqué en une phrase. Tout est en clair : pas de bloc encodé, pas de téléchargement caché. Les seules connexions sortantes sont les tests vers les adresses Microsoft, et ce que vous demandez vous-même. Vous pouvez le lancer dans votre organisation comme chez vos clients : ce qui est permis est écrit dans ses conditions d'utilisation.