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.

Rien à installerun seul fichier .ps1
PowerShell 5.1+Windows 10 et 11
≈ 3 à 10 minen profondeur Standard
0 envoile rapport reste sur le poste

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érequisPourPrécisions
RequisWindows 10 ou 11, avec Windows PowerShell 5.1Le script tout entier.Livré avec Windows. PowerShell 7 fonctionne aussi.
RequisUne console lancée en administrateur, ou SYSTEMLes 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 MicrosoftLa 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 disqueLes 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 courtLes 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 localLancer le fichier.Sinon, pour ce lancement seulement : powershell -ExecutionPolicy Bypass -File …
Aucun module à installer

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 de MdmDiagnosticsTool.

Il écrit

  • Un dossier IntuneDiag_<poste>_<date> sous %ProgramData%\IntuneDiagReporter, ou là où -OutputRoot l'indique : le rapport HTML et PDF, deux JSON, et les copies brutes dans Raw\.
  • Un ZIP du tout, à côté du dossier. -NoArchive pour 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.

1

Copier

Le bouton Copier le script, plus bas, copie le texte exact — ou lisez-le d'abord, module par module.
2

Coller et enregistrer

Dans le Bloc-notes ou VS Code, sur le poste à diagnostiquer. Enregistrez-le sous 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.
3

Lancer

Dans une console PowerShell en administrateur :
powershell -ExecutionPolicy Bypass -File .\IntuneDiagReporter.ps1
Sans argument, la fenêtre d'options s'ouvre : on choisit, on lance, et le rapport s'ouvre à la fin.

Les paramètres

-DepthQuick (≈ 1 min), Standard (défaut) ou Full (tout, 15 min ou plus).
-SinceDaysFenêtre d'analyse, en jours. Défaut : 14.
-OutputRootDossier de sortie. Défaut : %ProgramData%\IntuneDiagReporter. Gardez-le court.
-OpenReportOuvre le rapport à la fin.
-ConsoleUn verdict en un écran, en ASCII — pour un poste bloqué sur l'Enrollment Status Page, en Maj+F10.
-SilentAucune interface, code de sortie seul : 0 sain, 1 au moins un constat critique.
-NoPdf / -NoArchivePas de PDF / pas de ZIP.
-PdfEngineNative (défaut, sans navigateur) ou Edge.
-SkipConnectivityTestsAucune connexion sortante.
-SkipMdmDiagnosticsToolNe lance pas l'outil natif, s'il est lent sur votre parc.
-UploadPath / -UploadSasUriDé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 / -JsonMessageLimitForme 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.

IntuneDiagReporter
LB IT CLOUD · INTUNEDIAGREPORTERv1.2.1

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é.

DESTINATION
C:\ProgramData\IntuneDiagReporter
Gardez ce chemin court. reg.exe et wevtutil échouent au-delà de 260 caractères, et les exports disparaissent alors sans le dire.
PROFONDEUR
La durée dépend du nombre de journaux conservés par le poste, pas de sa puissance. Un poste co-géré en garde plusieurs fois plus qu'un poste simplement joint à Entra.
CE QUI EST PRODUIT
LANGUE DU RAPPORT
LOGO DU RAPPORT
(le logo intégré)
Laissez vide pour conserver le logo intégré. SVG, PNG, JPEG, GIF, WebP ou BMP, jusqu'à 512 Ko. L'image est intégrée au rapport, qui s'ouvre donc sans réseau.

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. -Console donne alors un verdict en un écran, -Silent un 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.

IntuneDiagReporter.ps1

v1.2.1 · 17,358 lignes · 1057 Ko

Cette page vous a-t-elle aidé ?

Votre avis est compté sans vous identifier : ni compte, ni cookie, ni commentaire — seul le sens du vote.