Daily Intune Device Reports via Logic Apps, Email & Teams

Intune-Geräteberichte per Logic Apps & Teams

Diese Schritt-für-Schritt-Anleitung zeigt, wie du tägliche Intune-Geräteberichte per Logic Apps, E-Mail und Teams versendest. Der Ablauf kombiniert Microsoft-Graph-Abfragen, Azure Logic Apps und deine bestehenden Microsoft-365-Kanäle – ganz ohne Reporting-Tool von Drittanbietern, und die gesamte Pipeline läuft im Azure-Consumption-Plan für wenige Cent pro Monat.

Für eine Intune-Administratorin oder einen Intune-Administrator ist es immer hilfreich, einen Überblick über den aktuellen Status des Tenants und über die Anzahl der Geräte im Feld zu erhalten. In diesem Blog möchte ich erklären, wie du mit Logic Apps einen detaillierten täglichen Bericht erhalten kannst.

Azure-Logic-Apps-Workflow für täglichen Intune-Gerätebericht
Azure-Logic-Apps-Workflow für täglichen Intune-Gerätebericht

Was ist Logic Apps

Microsoft Azure Logic App Services ist eine SaaS-Lösung (Software as a Service), die viele Möglichkeiten bietet, Prozesse, Workflows und Aufgaben durch Low Code und die Integration verschiedener Dienste zu automatisieren.

Logic-App-Instanz erstellen

  • Klicke auf + Add
  • Wähle die Subscription
  • Wähle oder erstelle eine Resource Group
  • Gib einen eindeutigen Namen der Logic App ein
  • Wähle eine Region
  • Wähle „Nein” für Log Analytics, sofern du dies nicht aktivieren möchtest
  • Wähle Consumption als Plan-Typ
  • Wähle Disabled für Zone Redundancy
  • Klicke auf Review + create
  • Füge bei Bedarf Tags hinzu und klicke auf Review + create
  • Klicke auf Create

Einen Azure Key Vault erstellen

  • Suche nach Key Vault
  • Klicke auf + Create
  • Wähle die Subscription
  • Wähle oder erstelle eine Resource Group
  • Gib einen eindeutigen Namen des Key Vaults ein
  • Wähle eine Region
  • Wähle Standard als Price Tier
  • Klicke auf Review + create

Eine App-Registrierung erstellen

  • Suche nach Microsoft Entra ID
  • Wähle App registration
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Wähle +New registration
  • Gib einen Namen ein und klicke auf Register
  • Klicke auf API permissions und +Add a permission
  • Wähle Microsoft Graph
  • Wähle Application permissions
  • Suche nach DeviceManagementManagedDevices.Read.All
  • Wähle Certificates & secrets und klicke auf +New client secret
  • Gib eine Description ein und wähle eine Expires-Zeit
  • Klicke auf Add
  • Kopiere und speichere den Value und die Secret ID
  • Öffne den zuvor erstellten Key Vault
  • Füge das Secret dem Vault hinzu
  • Klicke auf Grant admin consent for *** und bestätige mit Yes

Die Logic App aufbauen

  • Starte den Flow mit einem Recurrence Trigger. Stelle den Zeitplan auf einmal täglich.
  • Füge eine Azure Key Vault Get Secret Aktion hinzu
  • Gib den Namen des Key Vaults ein und melde dich an
  • Wähle das zuvor erstellte Secret
  • Füge eine HTTP-Aktion hinzu
  • Fülle die folgenden Attribute aus:
    • Method: GET
    • URI: https://graph.microsoft.com/v1.0/deviceManagement/managedDeviceOverview
  • Klicke auf „add new Parameter” und wähle Authentication
  • Wähle als Authentication Type Active Directory OAuth
  • Füge deine TenantId hinzu. Diese ID findest du in Microsoft Entra ID.
  • Wähle das Secret als Dynamic Content (Value)
  • Führe den ersten Test aus
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Prüfe im Body, ob du Gerätedaten siehst
  • Füge eine Parse-JSON-Aktion hinzu
  • Wähle Body als Content und füge den folgenden Inhalt als Schema hinzu:
{
    "type": "object",
    "properties": {
        "@@odata.context": {
            "type": "string"
        },
        "id": {
            "type": "string"
        },
        "enrolledDeviceCount": {
            "type": "integer"
        },
        "mdmEnrolledCount": {
            "type": "integer"
        },
        "dualEnrolledDeviceCount": {
            "type": "integer"
        },
        "deviceOperatingSystemSummary": {
            "type": "object",
            "properties": {
                "androidCount": {
                    "type": "integer"
                },
                "iosCount": {
                    "type": "integer"
                },
                "macOSCount": {
                    "type": "integer"
                },
                "windowsMobileCount": {
                    "type": "integer"
                },
                "windowsCount": {
                    "type": "integer"
                },
                "unknownCount": {
                    "type": "integer"
                }
            }
        },
        "deviceExchangeAccessStateSummary": {
            "type": "object",
            "properties": {
                "allowedDeviceCount": {
                    "type": "integer"
                },
                "blockedDeviceCount": {
                    "type": "integer"
                },
                "quarantinedDeviceCount": {
                    "type": "integer"
                },
                "unknownDeviceCount": {
                    "type": "integer"
                },
                "unavailableDeviceCount": {
                    "type": "integer"
                }
            }
        }
    }
}

Status per E-Mail senden

  • Füge eine Outlook Send an Email (V2) Aktion hinzu
  • Füge die Empfängeradresse in der Spalte To hinzu
  • Füge einen Subject hinzu
  • Wenn du dem Betreff ein Datum hinzufügen möchtest, füge den folgenden Ausdruck hinzu:
string(utcNow('yyyyMMdd'))
  • Füge Folgendes in der Spalte „Body” hinzu. (Du kannst den Text beliebig anpassen)
Dear MDM Team,

attached your daily report:
- Total devices: @{body('Parse_JSON')?['enrolledDeviceCount']}
- Mdm enrolled: @{body('Parse_JSON')?['mdmEnrolledCount']}
- Hybrid enrolled: @{body('Parse_JSON')?['dualEnrolledDeviceCount']}

Per device group:
- Windows: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['windowsCount']}
- Android: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['androidCount']}
- iOS: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['iosCount']}
- MacOS: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['macOSCount']}


Best regards and have a nice day without troubles
Your logic app
  • Jetzt können wir einen Testlauf durchführen, um zu prüfen, ob alles funktioniert
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Prüfe deinen Posteingang
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams

Status per Teams senden

  • Erstelle einen Microsoft-Teams-Kanal und füge den Webhook-Connector hinzu
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
  • Kopiere die WebHook-URL
  • Füge dem Flow eine HTTP-Aktivität hinzu
  • Wähle POST als Method
  • Gib die URL als URI ein
  • Füge im Header Content-Type als Key und application/json als Value hinzu
  • Gib den folgenden Body ein
  • Hinzufügen
{
  "text": "Dear MDM Team, nn attached your daily report:n- Total devices: @{body('Parse_JSON')?['enrolledDeviceCount']}n- Mdm enrolled: @{body('Parse_JSON')?['mdmEnrolledCount']}n- Hybrid enrolled: @{body('Parse_JSON')?['dualEnrolledDeviceCount']}nnPer device group:n- Windows: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['windowsCount']}n- Android: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['androidCount']}n- iOS: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['iosCount']}n- MacOS: @{body('Parse_JSON')?['deviceOperatingSystemSummary']?['macOSCount']}"
}
  • Jetzt können wir einen Testlauf durchführen, um zu prüfen, ob alles funktioniert
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams
Tägliche Intune-Geräteberichte per Logic Apps, E-Mail & Teams

Fazit

In diesem Blog habe ich dir die Grundlagen gezeigt, wie du eine Logic App erstellst, um die Intune Graph API abzufragen. Du kannst mein Beispiel beliebig erweitern und z. B. den aktuellen Service-Health-Status einbinden oder den Status des Windows-Update-Deployments hinzufügen. Wenn du eine ausführlichere und aktualisierte Version möchtest, schau dir meine V2-Schritt-für-Schritt-Anleitung an, um einen täglichen Gerätebericht per E-Mail oder Teams mit Logic Apps zu erhalten.

Bleib gesund, Cheers
Jannik