MSXFAQ MeetNow aktiv: Komm doch einfach dazu.

Device Join Diagnose

Auf dieser Seite sammel ich meine Erfahrungen mit der Fehlersuche bei EntraID Joined Clients und Intune Clients. Quasi ein paar Blicke hinter die Kulissen, wie die verschiedenen Komponenten zusammen agieren und wo man nach Fehlern suchen kann.

Entra und Intune

Standalone-Clients gibt es eigentlich nur noch in Privathaushalten. Alles, was heute in einer Firma eingesetzt wird, wird an einen zentralen Service angekoppelt, damit der aktuelle Status über ein Inventar erfasst und Einstellungen, Updates und Software verteilt werden können. In der Microsoft-Welt ist damit die Mitgliedschaft in einer Active Directory Domain und/oder in Entra ID gemeint. Inventarisierung und Management erfolgt dann per Intune. Um über Intune verwaltet zu werden, muss ein Client zwingend in Entra ID bekannt sein.

Once users and devices are registered within your Microsoft Entra ID (also called a tenant), then you can utilize Intune for its endpoint management capabilities.
Quelle: Device enrollment guide for Microsoft Intune https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/deployment-guide-enrollment

Insofern müssen wir Geräte immer zuerst in EntraID auf die ein oder andere Weise (Registered, Joined, HybridJoined) verbinden, ehe wir sie dann auch in Intune aufnehmen können. Zu dem Thema "Entra ID Join" und "Intune Registrierung" gibt es verschiedene Seiten. Auf dieser Seite geht es primär um die Fehlersuche, wenn ein Geräte nicht aufgenommen wird.

Aufnahme Entra ID

Ein Gerät kann hinsichtlich Entra ID einen von vier Zuständen einnehmen:

  1. Joined - Client ist nur in Entra ID Mitglied
  2. Hybrid Joined - Client ist sowohl im lokalen AD als auch in Entra ID Mitglied
  3. Registriert - Client ist in Entra ID nur registriert, d.h. bekannt
  4. Nicht bekannt - Für den Client gibt es kein Objekt in EntraID oder Active Directory

Nur die drei ersten Varianten sind für Intune gültige Zustände. Je nach Konfiguration des Tenants können Anwender sogar Computer selbst aufnehmen. In der Regel macht dies aber ein Administrator oder das automatische Enrollment über Autopilot oder Massenimport. Microsoft hat dazu eine nette Tabelle bereitgestellt:


Quelle: https://learn.microsoft.com/en-us/entra/identity/devices/device-join-plan#understand-your-provisioning-options

Wenn Sie "Hybrid Joined" sind, dann müssen Sie den Client zuerst in die lokale AD-Domain aufnehmen, damit er dann per Gruppenrichtlinie oder LDAP-Information den Weg zum Tenant findet und durch ADSync dann gematched wird. Wer nur noch EntraID-Join nutzt, kann den Beitritt zwar dem Anwender überlassen. Ich würde dann aber ein Provisioning Paket stellt und auf dem Client einspielen. Dazu gibt es den "Windows Configuration Designer":

Windows Configuration Designer
https://apps.microsoft.com/detail/9nblggh4tx22?hl=de-DE&gl=DE

Hier dann der Dialog zur Konfiguration eines Entra ID-Join. Der Administrator besorgt sich ein "Join-Token", welches dann in das Paket eingebunden wird.

Entsprechend unterscheiden sich auch die Fehlersuchoptionen.

Aufnahmeprozess Intune

Wenn der Client schon einmal durch Azure AD/Entra ID verwaltet wird, ist die Aufnahme in Intune dann der nächste Schritte. Auch das kann manuell durch den Anwender über die "Unternehmensapp" erfolgen:

Intune Unternehmensportal
https://apps.microsoft.com/detail/9wzdncrfj3pz?hl=de-DE&gl=DE 

Wenn der Computer aber eh schon in Entra ID erfasst ist dann sollten Sie den automatischen Weg als Administrator wählen.

Diagnosedaten sammeln

Solange das Gerät bei ihnen in der IT vor Ort ist und sie die Aufnahme in Entra ID und Intune begleiten und selbst analysieren und reparieren können, ist dieser Abschnitt vielleicht nicht so wichtig. Er ist aber nützlich, wenn Anwender üb er Probleme klagen und Sie sich nicht auf das Gerät aufschalten oder gar vorbeilaufen können. Windows enthält nämlich eine einfache Möglichkeit, die Verwaltungsprotokolle eoinzusammeln.

Allerdings hat Microsoft hier aus meiner Sicht vergessen, einen einfachen Meldeweg mit einzubauen, z.B. dass es nicht nur einen Klick auf "Export" in ein Verzeichnis sondern z.B. auch per Mail versenden oder Upload per HTTPS auf eine Webseite vorsieht. Auch fehlt mir ein Weg, diesen Button "aus der Ferne" zu drücken. Per Procmon sehe ich nur den Prozessstart von "C:\Program Files (x86)\Microsoft Intune Management Extension\Microsoft.Management.Services.IntuneWindowsAgent.exe", der aber nicht manuell möglich ist.

Wenn die Aktion ausgelöst wird, landet bei mit im Ordner "C:\Users\Public\Documents\MDMDiagnostics eine ZIP-Datei, die im Grund eine Zusammenfassung aller Protokolldateien von Entra ID Join und Intune ist. Auch die relevanten Eventlogs werden mit exportiert:

Da fehlt dann auf der Seite des Administration nur noch ein Werkzeug, um dieses Paket elegant auf Fehler zu durchsuchen.

DSREGCMD (Entra ID)

Diese beiden Tools haben nichts mit der "Windows Registrierung" und "Regedit" zu tun, sondern liefern Details zum Anmeldestatus des Clients an Domains, Entra ID und Konten der Anwender. Es ist auf jedem Client von Hause aus installiert und kann wie folgt aufgerufen werden:

dsregcmd /Status

Es gibt noch weitere Parameter um per Kommandozeile den Computer aus einer Verwaltungsverbindung zu entfernen oder neu aufzunehmen.

C:\>dsregcmd /?
DSREGCMD switches
                        /? : Displays the help message for DSREGCMD
                   /status : Displays the device join status
               /status_old : Displays the device join status in old format
                     /join : Schedules and monitors the Autojoin task to Hybrid Join the device
                    /leave : Performs Hybrid Unjoin
                    /debug : Displays debug messages
               /refreshprt : Refreshes PRT in the CloudAP cache
          /refreshp2pcerts : Refreshes P2P certificates
          /cleanupaccounts : Deletes all WAM accounts
             /listaccounts : Lists all WAM accounts
             /UpdateDevice : Update device attributes to Azure AD

Aus meiner Sicht ist dies das erste Werkzeug zur Fehlersuche

Mittlerweile gibt es auf GitHub aber auch ein PowerShell-Script mit gleichem Namen, welche auch in der Microsoft Dokumentation referenziert wird.

Device Registration Troubleshooter Tool
https://github.com/mzmaili/DSRegTool

Das PowerShell-Script macht laut eigener Aussage über 50 Prüfungen, um die häufigsten Probleme einer Device Registrierung zu analysieren. Für einige Aktionen müssen Sie lokale Administrator sein und das Skript versucht eine Anmeldung über MSGraph und AzureAD PowerShell mittels Device Registration und Code. Dafür kann es dann natürlich mehr Informationen prüfen, als dies "DSREGCMD.EXE liefert, welches nur lokal nachschaut. Das PowerShell-Script hat weitere Optionen, z.B. das Sammeln von Protokollen. Im Code ist gut zu sehen, dass dabei im Grunde auch nur DSREGCMD.EXE ausgeführt, einige Eventlogs und Registrierungsschlüssel exportiert, URLs geprüft und andere Details in eine Textdatei exportiert werden. Schauen Sie einfach in den Source Code in die "Function LogsCollection".

mdmdiagnosticstool.exe (Autopilot/Intune)

Ein weiteres Tool auf dem Client kann ebenfalls zur Generierung von Protokolldateien. Dazu müsste ein Anwender aber schon wieder eine CMD-Shell öffnen und den Aufruf mit Parametern starten und dann das  CAB-Archiv dem Support zuleiten, z. B.  

mdmdiagnosticstool.exe -area DeviceProvisioning -cab <pathToOutputCabFile>

Das würde ich dem Anwender nur Zumuten, wenn andere Wege versagen oder Sie schüren ein Paket, welches Sie auf den Client verteilen. Vielleicht dieses ja noch ausgeführt.

Die

Computer Zertifikate

Wenn ich am Computer selbst bin , dann kann ich aber auch sehr schnell einige Prüfungen interaktiv durchführen. In den Computer-Zertifikaten kann ich sehr schnell sehen, ob das Geräte überhaupt schon einmal eine Registrierung mit EntraID/Intune erfolgt ist. Beide Systeme stellen für den Client ein Zertifikat für die spätere Authentifizierung aus.

Prüfen Sie hier, dass es die Zertifikat gibt und der CN ist zur DeviceID verbunden. Eine Suche im Entra ID sollte dann schnell Aufschluss liefern, ob die Zertifikate zu einem aktuellen Gerät passen. Wenn Sie hier keine Zertifikate finden oder das Ausstellungsdatum nicht zu ihrem Zeitpunkt der Registrierung passt, dann haben wir einen ersten Ansatzpunkt. Es könnte z.B.: an einer Firewall oder Proxy-Einstellung liegen, dass der Client noch gar nicht zu Entra ID kommt. Eine Verbindung zu den folgenden Endpunkten ist dabei mit einem POST zu prüfen, z.B.

# Folgende ANfragen sollten eine 200 OK liefern
(Invoke-Webrequest -Method POST "https://login.microsoftonline.com").statuscode
(Invoke-Webrequest -Method POST "https://device.login.microsoftonline.com").statuscode

# Folgende Anfragen liefern eine JSON-Datei mit einer Fehlermeldung oder einen Not Found
Invoke-WebRequest -Method POST "https://enterpriseregistration.windows.net"
Invoke-WebRequest -Method POST "https://pas.windows.net"

Alle Anfragen sollten aber schnell beantwortet werden und keine Authentifizierungsfehler liefern.

Geplante Tasks

Sowohl EntraID als auch Intune nutzen den Windows Taskplaner für die regelmäßige Ausführung bestimmter Aktionen. Hier kann das „Ergebnis der letzten Ausführung“ schnell helfen, um Fehler zu erkennen und diese dann weiter zu untersuchen.

  • Microsoft/Windows/EnterpriseMgmt/
     
  • Microsoft/Intune

Damit kennen wir zwar noch nicht den Fehler an sich aber haben zumindest einen Hinweis auf die Teilkomponente, um im nächsten Schritt das passende Eventlog genauer zu lesen. Sie können hier natürlich auch die fehlgeschlagenen Skripte einfach noch mal starten.

Eventlog

Zwar nicht an letzter Stelle aber zumindest erst später würde ich eines der vielen Eventlogs schauen. Da gibt es einmal den Bereich für das Device Management im Allgemeinen:

Entra ID Logs

Die Anmeldung eines Clients bleibt nicht "unerkannt". Er muss sich ja zumindest an EntraID authentifizieren um dann ein Zertifikat zu erhalten. Solche Aktivitäten finden Sie am besten im Device Audit Log

Manuelles Provisioning

Wenn allerdings gar nichts mehr hilft, dann können sie immer noch versuchen, den  Client manuell aufzunehmen oder aus der Verbindung zu EntraID zu entfernen.

REM Computer ins AzureAD/AD aufnehmen
DSREGECMD /Join

REM Computer aus dem AzureAD/AD entfernen
DSREGECMD /Leave

Wenn Sie das Provisoining über ein PPKG-Paket machen, dann könnten Sie dies per PowerShell entfernen und neu anwenden lassen

# Entfernen eines z.B: per Autopilot schon installiertem Paket "osinstall.ppkg"
Uninstall-ProvisioningPackage -PackagePath OSinstall.ppkg

# erneutes Einspielen des Pakets OSinstall.ppkg
Install-ProvisioningPackage -PackagePath .\OSinstall.ppkg -QuietInstall -ForceInstall

In beiden Fällen sollten sie nun im Eventlog wieder den Fortschritt sehen und z.B. mit DSREGCMD den Status ermitteln können.

Weitere Links