EN EnglishDE Deutsch

PRTG – Intune überwachen (Graph API, Microsoft Endpoint Manager)

PRTG – Intune überwachen (Graph API, Microsoft Endpoint Manager)
Foto von Hugo Jehanne / Unsplash
PRTG-Sensor mit Messanzeigen für Total Devices (7256), Android, iPhone, MacOS, Unknown, Windows, Not Compliant (430) und Not Encrypted (45)
Bild: PRTG-Sensor für Intune-Geräte

Der aktuelle Trend zu webbasierten Anwendungen und Diensten wie Microsoft 365 spiegelt auch das Bedürfnis von Mitarbeitenden und Unternehmen wider, mobiler oder im Homeoffice arbeiten zu können. Bei modernen IT-Arbeitsgeräten, die standortunabhängig funktionieren, ist es besonders wichtig, die Compliance dieser Geräte sicherzustellen.
Eine Möglichkeit dafür ist PRTG-Monitoring für den Endpoint Manager (Intune).

Werden die Arbeitsgeräte mit Microsoft Endpoint Manager (Intune) verwaltet, lassen sich die Informationen aus dem Endpoint Manager auch in Ihr bestehendes PRTG-Monitoring holen.

Für die Überwachung der Kennzahlen verwenden wir die Monitoring-Software von Paessler. PRTG überwacht Datenverkehr, Verfügbarkeit und Performance von Geräten und Anwendungen in IT-Infrastrukturen. Dazu gehören klassische Netzwerkgeräte wie Server, Router, Switches und Firewalls, aber auch virtuelle Umgebungen. Und – wie in diesem Beispiel – mit den passenden Skripten auch Cloud-Komponenten wie der Microsoft Endpoint Manager.

In diesem Beispiel messen wir mit PRTG folgende Kennzahlen aus dem Microsoft Endpoint Manager:

  • Anzahl verwalteter Geräte (Windows, macOS, iOS, Android)
  • Anzahl Geräte pro Betriebssystem
  • Anzahl nicht konformer Geräte
  • Anzahl nicht verschlüsselter Geräte

Voraussetzungen

Damit sich die gewünschten Kennzahlen auslesen lassen, braucht es im Azure AD (heute Microsoft Entra ID) einen Service Principal (App-Registrierung). Dieser muss die passenden Leseberechtigungen in der Microsoft Graph API haben (DeviceManagementManagedDevices.Read.All).
https://learn.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals

Auf dem PRTG-Server bzw. der PRTG-Probe ist das PowerShell-Modul «MSAL.PS» installiert. Das ist das Modul der Microsoft Authentication Library, mit dem das Skript ein Access Token bezieht.

Install-Module MSAL.PS -Scope AllUsers -Force

PowerShell: MSAL-Bibliothek (Microsoft Authentication Library) installieren

Das Skript verwendet diese Bibliothek an einer Stelle, um ein Access Token zu holen:

# acquire azure authentication token
$MsalToken = Get-MsalToken -TenantId $tenant_id -ClientId $app_id -ClientSecret ($client_secret | ConvertTo-SecureString -AsPlainText -Force)

#Connect to Graph using access token
Connect-Graph -AccessToken $MsalToken.AccessToken

PowerShell: Azure-Authentifizierungstoken beziehen

PowerShell-Fehlermeldung: Der NuGet-Provider kann nicht heruntergeladen werden, Install-Module schlägt fehl
Bild: TLS 1.2 muss erzwungen werden

Erscheint die obige Fehlermeldung und lässt sich NuGet nicht installieren, muss zuerst TLS 1.2 erzwungen werden.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider NuGet

PowerShell: TLS 1.2 erzwingen

Service Principal (App-Registrierung)

Nun legen Sie im Azure Active Directory einen «Service Principal» (App-Registrierung) inklusive Secret an.
Dabei erhalten Sie verschiedene Angaben, die Sie anschliessend für das Monitoring-Skript brauchen, damit es auf die Informationen in Azure zugreifen kann:

  • Application ID (app_id)
  • Azure Tenant ID (tenant_id)
  • Application Client Secret (client_secret)

Wie Sie den Service Principal anlegen, ist im Download (Readme) ausführlich beschrieben.

PowerShell und Graph API

Die gewünschten Kennzahlen aus dem Endpoint Manager stellt Microsoft über die Graph API bereit. Früher hatte jedes Produkt seine eigene API oder sogar mehrere. Exchange kennt EWS, REST, ActiveSync und MAPI/HTTP, Skype for Business hat eine UCWA und eine UCMA, und so liesse sich die Liste endlos fortsetzen. Jede API hat ihre eigene URL, eigene Methoden, ein eigenes Format und eigene Authentifizierungsmechanismen.

Mit Microsoft Graph will Microsoft einen einheitlichen Zugriff auf alle Daten über eine REST-Schnittstelle bieten. Unser Skript verwendet folgenden Endpoint:

https://graph.microsoft.com/V1.0/deviceManagement/managedDevices

Dieser ist bei Microsoft hier genauer dokumentiert.

PRTG-Skript

Laden Sie das PowerShell-Skript (oben) bzw. das ZIP herunter und entpacken Sie es auf der PRTG-Probe im Pfad C:/Program Files (x86)/PRTG Network Monitor/Custom Sensors/EXEXML.

Aus dem Internet heruntergeladene PowerShell-Skripte müssen noch entsperrt werden.

Unblock-File v2_prtg_intune_device_monitor.ps1

PRTG-Konfiguration

Gerät anlegen

  • Legen Sie in PRTG ein Gerät an, z. B. «Microsoft 365» (die IP-Adresse spielt keine Rolle, z. B. 127.0.0.1).
  • Tragen Sie in den Eigenschaften des Geräts unter «Credentials for Windows Systems» bei Username und Password den oben angelegten Azure-Benutzernamen und das Passwort ein. Als Username muss die E-Mail-Adresse des Benutzers stehen.

Sensor anlegen

  • Legen Sie für das Gerät einen neuen Sensor vom Typ EXE/Script Advanced an.
  • Wählen Sie als Skript «Powershell Script – Endpoint Manager Overview.ps1».
  • V1 (ohne Service Principal, nur ein normaler Benutzer ohne MFA)
    Tragen Sie im Feld «Parameters» Folgendes ein: -username “%windowsuser” -password “%windowspassword”.
  • V2
    Tragen Sie im Feld «Parameters» Folgendes ein:
    -app_id “<%azure_application_id>”
    -tenant_id “<%azure_tenant_id>”
    -client_secret “<%azure_application_client_secret>”
  • Erhöhen Sie den Timeout von 60 s auf 120 s.
  • Stellen Sie das Intervall nach Bedarf ein, z. B. einmal pro Stunde.
PRTG Sensor Settings: Feld Parameters mit -username und -password sowie Timeout von 120 Sekunden, beide rot markiert
Bild: Konfiguration des PRTG-Sensors für Intune

Die Alarmierung ist individuell. Die gewünschten Schwellenwerte legen Sie deshalb in den Kanaleinstellungen unter «Value Lookups and Limits» fest. https://www.paessler.com/manuals/prtg/sensor_channels_settings

Hat alles geklappt, sehen Sie die gewünschten Kennzahlen im Monitoring:

PRTG-Sensor mit Messanzeigen für Total Devices (7256), Android, iPhone, MacOS, Unknown, Windows, Not Compliant (430) und Not Encrypted (45)
Bild: Der PRTG-Sensor zeigt den Status der Intune-Geräte
  • Anzahl verwalteter Geräte (Windows, macOS, iOS, Android)
  • Anzahl Geräte pro Betriebssystem
  • Anzahl nicht konformer Geräte
  • Anzahl nicht verschlüsselter Geräte

Mit wenig Aufwand erscheinen wichtige Informationen aus dem Microsoft Endpoint Manager im Monitoring, und wird ein festgelegter Schwellenwert überschritten, löst PRTG einen Alarm aus, per E-Mail, Ticket, Microsoft Teams usw.