Thema dieser Seite: Einfache Analyse von MDM-Diagnosedaten
Wenn sich ein per Intune verwaltetes Gerät fehlerhaft verhält – eine Richtlinie greift nicht, eine App lässt sich nicht installieren, BitLocker schlägt unbemerkt fehl – liegt die Wahrheit auf dem Client selbst. Der MDM Diagnostic Report von Microsoft bündelt all das in einer einzigen ZIP-Datei, die alles von MDM-Ereignisprotokollen bis hin zu aktuellen Richtlinienwerten enthält. Das Problem ist, dass das Durchsuchen der rohen HTML-, EVTX- und Registry-Exporte mühsam ist und die meisten Admins nie über die Startseite hinauskommen. Dieser Beitrag zeigt den einfachsten praktischen Workflow, den ich auf echten Client-Geräten nutze, um die Antworten schnell zu extrahieren, sowie die wenigen Dateien, die du zuerst öffnen solltest, um 80 % aller Support-Fragen zu beantworten.
In diesem Blog möchte ich dir ein hilfreiches Tool vorstellen, mit dem du das MDM-Diagnoseprotokoll direkt auf dem Client mithilfe von PowerShell analysieren und den Inhalt auf einfache Weise aufbereiten kannst, um Remediations umzusetzen oder ein Monitoring aufzubauen. In den folgenden Abschnitten erkläre ich dir Schritt für Schritt, wie du dieses Skript einsetzen kannst.

Inhaltsverzeichnis
Warum MDM-Diagnosedaten direkt auf dem Client analysieren?
Das Portal in Intune erzählt dir nur einen Teil der Geschichte. Das Reporting ist verzögert, aggregiert und manchmal schlicht falsch, weil sich das Gerät noch gar nicht eingecheckt hat. Wenn du die MDM-Diagnosedaten direkt auf dem Client analysierst, siehst du den echten, aktuellen Zustand: welche Enrollment aktiv ist, welche Richtlinien tatsächlich angekommen sind und an welcher Stelle ein Configuration Service Provider einen Fehler zurückgegeben hat. Genau deshalb schlagen die Diagnosedaten auf dem Gerät alles, was dir die Cloud-Reports anzeigen – und sie sind die erste Stelle, an der ich nachsehe, wenn ein Gerät feststeckt.
Wo findest du das Skript?
Du findest das Skript in meinem GitHub-Repository.
https://github.com/JayRHa/Intune-Scripts/tree/main/Get-MdmDiagnostigLogs
Wie funktioniert das Skript?
Unter der Haube stößt das Skript denselben Mechanismus an, den Microsoft für den MDM Diagnostic Report dokumentiert, und liest die erzeugte Sammlung anschließend in ein sauberes PowerShell-Objekt ein. Statt dich durch das generierte HTML zu klicken, erhältst du die MDM-Diagnosedaten als strukturierte Eigenschaften, die du filtern, exportieren oder direkt in eine Remediation einspeisen kannst. Das kurze Video unten zeigt einen kompletten Durchlauf von Anfang bis Ende.
Wie kann ich das Skript aufrufen?
Das Skript verfügt über drei verschiedene Parameter:
| Parameter | Beschreibung |
| collectNew | (Switch) Erstellt ein neues MDM-Protokoll oder verwendet das vorhandene (falls keines existiert, wird ein neues erstellt) |
| returnonly | (Switch) Gibt ein Objekt zurück; ist es nicht gesetzt, wird das Objekt in der Konsole ausgegeben |
| output | (Liste) Legt die Ausgabeinformationen fest, die du erhalten möchtest. Wenn du alle haben möchtest, kannst du ‘All’ angeben Unterstützte Werte: ‘All’,’ActiveSync’,’DeviceManageabilityProviderInfo’,’DeviceManagementAccount’,’Diagnostics’,’EAS’,’Enrollments’,’EnterpriseDesktopAppManagementinfo’,’FirstSyncData’,’MdmWinsOverGp’,’PolicyManager’,’PolicyManagerMeta’,’ProvisioningResults’,’Resources’,’SCEP’,’SystemInformation’,’Version’,’WAP’ |
Hier sind einige Beispiele, wie du das Skript aufrufen kannst:
‘FirstSyncData’ und ‘SystemInformation’ als Ausgabe im Terminal abrufen
Get-MdmDiagnosticLogObject -output @('FirstSyncData', 'SystemInformation')
‘FirstSyncData’ und ‘SystemInformation’ als Rückgabewert in einer Variablen abrufen
$mdmDiagnostic = Get-MdmDiagnosticLogObject -returnonly -output @('FirstSyncData', 'SystemInformation')
Eine neue Protokolldatei erzeugen und ‘FirstSyncData’ und ‘SystemInformation’ als Rückgabewert in einer Variablen abrufen
$mdmDiagnostic = Get-MdmDiagnosticLogObject -returnonly -collectNew -output @('FirstSyncData', 'SystemInformation')
Alle Metadaten der Gerätekonfigurationsobjekte abrufen
$mdmLogInfo = Get-MdmDiagnosticLogObject -output @('PolicyManagerMeta') -returnonly
Write-Output $mdmLogInfo.PolicyManagerMeta.AreaMetadata
MDM-Diagnosedaten in automatisierte Prüfungen verwandeln
Weil das Skript ein echtes Objekt zurückgibt, kannst du die MDM-Diagnosedaten direkt in eine Intune-Remediation oder ein eigenes Monitoring-Dashboard einbinden. Lies einen Richtlinienwert aus, vergleiche ihn mit deiner Baseline und melde die Abweichung entweder oder behebe sie automatisch – ganz ohne dass jemals ein Mensch die ZIP-Datei öffnen muss. In größeren Umgebungen lohnt es sich, diese Prüfung als geplante Remediation auszurollen, sodass jeder Client seinen eigenen Zustand meldet, statt dass du Gerät für Gerät manuell durchgehst.
Ein typischer Stolperstein dabei: Achte darauf, das Skript im richtigen Kontext auszuführen. Die Erzeugung eines neuen MDM-Protokolls erfordert SYSTEM- bzw. Administratorrechte, weshalb ein Lauf im normalen Benutzerkontext leere oder unvollständige Daten liefern kann. Wenn du es über Intune-Remediations einsetzt, läuft es ohnehin als SYSTEM – beim lokalen Testen solltest du PowerShell jedoch bewusst als Administrator starten. Sobald du MDM-Diagnosedaten als Code statt als Bericht behandelst, wird die clientseitige Fehlersuche schnell, wiederholbar und macht ehrlich gesagt sogar Spaß. Wenn du tiefer in dieses Thema einsteigen möchtest, wirf einen Blick auf meine weiteren Intune-Automatisierungsbeiträge, in denen ich dasselbe Muster nutze, um ganze Flotten gesund zu halten.


Comments are closed.