Copy Intune Discovered Apps in Log Analytics Workspace

Discovered Apps in Log Analytics kopieren

Intune bietet die Möglichkeit, pro Gerät nicht nur die über Intune installierten Apps anzuzeigen, sondern auch die auf dem Gerät erkannten Apps (Discovered Apps bzw. Apps aus der Systemsteuerung). Da diese Ansicht relativ statisch ist und du hier nur eine Ansicht pro Gerät hast, ist es schwierig, Auswertungen über die gesamte Umgebung zu erstellen, z. B. um zu sehen, welche App im Portfolio fehlt, da diese häufig von den Benutzern selbst installiert wird. Warum nutzen wir nicht Log Analytics, um mehr Möglichkeiten zu haben, mit diesen Informationen zu arbeiten? In diesem Blog möchte ich dir zeigen, wie du das mit einem Skript ganz einfach umsetzen kannst.

Intune Discovered Apps in Log Analytics Workspace kopieren
Intune Discovered Apps in Log Analytics Workspace kopieren

Warum Discovered Apps sammeln?

Das Discovered-App-Inventar ist ein oft übersehener Schatz. Es zeigt dir genau, welche Software auf einem Gerät liegt, einschließlich Programmen, die nie über dein Management-Tooling verteilt wurden. Wenn du diese Daten aus dem Portal herausziehst, gewinnst du echte Reporting-Möglichkeiten: Du kannst unerwünschte Software aufspüren, Lizenzrisiken nachverfolgen und Lücken in deinem Anwendungsportfolio finden. Hintergründe dazu, was dieses Inventar enthält, findest du in der offiziellen Microsoft-Learn-Dokumentation zu Discovered Apps.

Log Analytics Workspace erstellen

Intune Discovered Apps in Log Analytics Workspace kopieren
  • Wähle die Subscription und die Resource group aus oder erstelle eine neue
  • Gib einen Namen für den Workspace ein
  • Wähle die Region
  • Klicke auf Next: Tags >
Intune Discovered Apps in Log Analytics Workspace kopieren
  • Optional: Tags hinzufügen
  • Klicke auf Next: Review + Create >
Intune Discovered Apps in Log Analytics Workspace kopieren
  • Klicke auf Create
Intune Discovered Apps in Log Analytics Workspace kopieren

Workspace-Informationen abrufen

  • Öffne den neuen Log Analytics Workspace
  • Navigiere zu Agent management
  • Hier findest du die Workspace ID und den Primary key. Diese Informationen benötigst du später, um sie in das Skript einzufügen
Intune Discovered Apps in Log Analytics Workspace kopieren

Das Discovered-App-Inventar aller Geräte in den Workspace schreiben

Du musst nicht viel tun. Das Skript, das die Arbeit erledigt, ist bereits erstellt. Aktuell ist das Skript so geschrieben, dass es alle Geräte berücksichtigt. Wenn du nur am Sammeln des Inventars bestimmter Geräte interessiert bist, kannst du einen Filter hinzufügen.

  • Lade das Skript aus meinem GitHub-Repository herunter
  • Öffne das Skript und füge die Workspace ID und den Primary key hinzu
Intune Discovered Apps in Log Analytics Workspace kopieren
  • Führe das Skript aus
  • Öffne den Log Analytics Workspace und prüfe, ob du alle Discovered Apps deiner Geräte sehen kannst

Ein praktischer Tipp, bevor du das Ganze im großen Stil ausführst: Starte das Skript zunächst gegen eine kleine Pilotgruppe. Der Graph-Aufruf, der die Discovered Apps liest, ist gepaged, sodass der vollständige Export in einem großen Tenant eine Weile dauern kann. Es ist deutlich einfacher zu prüfen, ob die Datensätze in der richtigen Tabelle landen, solange du nur mit einer Handvoll Geräte arbeitest. Wenn die Pilotdaten stimmen, entfernst du den Filter und lässt das Skript gegen die gesamte Flotte laufen.

Intune Discovered Apps in Log Analytics Workspace kopieren

Discovered Apps in Log Analytics abfragen

Sobald die Daten in den Workspace fließen, entsteht der eigentliche Mehrwert durch die Abfragen. Das Skript schreibt die Datensätze in ein Custom Log, sodass du mit der Kusto Query Language (KQL) Fragen beantworten kannst, die das Intune-Portal nicht beantworten kann. Eine häufige erste Abfrage ist die nach den am weitesten verbreiteten Anwendungen über die gesamte Umgebung hinweg. So siehst du sofort die Software, die du verwaltest, ohne es zu merken.

DiscoveredApps_CL
| summarize DeviceCount = dcount(DeviceName_s) by AppName_s
| sort by DeviceCount desc
| take 25

Von hier aus ist es nur ein kleiner Schritt, Lizenzrisiken nachzuverfolgen (filtere nach einem Herstellernamen und zähle die eindeutigen Geräte) oder Software zu finden, die gar nicht vorhanden sein sollte. Da die Daten in Log Analytics liegen, kannst du jede dieser Abfragen an ein Azure-Dashboard heften oder in eine Alert-Regel einbinden, sodass dich ein neues Auftreten unerwünschter Software automatisch benachrichtigt, anstatt dass jemand das Portal prüfen muss.

Häufige Stolperfallen

Zwei Dinge führen am häufigsten zu Verwirrung. Erstens erscheint die Custom-Log-Tabelle erst nach dem ersten erfolgreichen Schreibvorgang im Workspace. Erschrick also nicht, wenn die Tabelle unmittelbar nach dem ersten Lauf des Skripts noch fehlt; gib der Ingestion ein paar Minuten Zeit. Zweitens aktualisiert sich das Discovered-App-Inventar in Intune selbst nur etwa einmal pro Tag, das heißt, die exportierten Daten sind so aktuell wie der Erfassungszyklus von Intune und nicht in Echtzeit. Plane das Skript so, dass es nach dieser Aktualisierung läuft, zum Beispiel als täglicher Azure-Automation-Runbook, damit jeder Export das neueste Inventar widerspiegelt und nicht den Stand von gestern.

Fazit

Ich hoffe, ich konnte dir in diesem Blog erklären, wie du die Discovered Apps aus Intune in einen Log Analytics Workspace schreiben kannst, um weitere Analysen durchzuführen. Log Analytics bietet endlose Möglichkeiten, was du mit den Daten machen kannst. Du kannst Dashboards erstellen und die Daten mit weiteren Informationen anreichern,…

Bleib gesund, Cheers
Jannik

One thought on “Discovered Apps in Log Analytics kopieren

  1. This is the solution I have been looking for. Thanks for documenting it. However, when I get to the step of running the script. I get an error at line 1
    “The name ‘$customerid’ does not refer to any known column, table, variable or function”
    I am running it in the “Logs” section of the Log Analytics Workspace I created in the instructions. Any idea why I am getting this error?

Comments are closed.