Mit der Veröffentlichung von DSM 2022.1 wurde auch der neue Microsoft Intune Konnektor veröffentlicht. Dieser Konnektor, welcher mittels Azure App Registration über die Graph API mit Intune kommuniziert, ermöglicht unter anderem einen direkten Upload des DSM Agents zur Verteilung via Intune.

Prinzipiell bietet dieser Konnektor natürlich vor allem für hybride Client Management Ansätze ein sehr großes Potenzial. Da sich der Funktionsumfang der Seitens Ivanti zum aktuellen Zeitpunkt mitgeliefert wird jedoch noch in Grenzen hält, möchte ich heute zeigen wie Sie sich mit wenig Aufwand und DSM Bordmitteln auch jetzt bereits interessante Infos aus der Cloud in Ihre DSM Umgebung syncen können.

Aber was wäre denn interessant zu wissen? Ob es sich bei einem Client um ein AAD-Only oder ein Hybrid-Joined Gerät handelt? Oder vielleicht die Geräte-ID aus Intune? Kurz gesagt, eine Art "DSM Basis Inventarisierung" für Intune wäre doch toll.


Was wird benötigt 

Lassen Sie uns zunächst definieren was wir für unsere Cloud Basis-Inventarisierung benötigen:

  • Azure App Registration um mit Intune kommunizieren zu können
  • Die NWC PowerShell Extensions für DSM
  • Clientseitige Schemaerweiterungen nach Belieben
  • Ein PowerShell Sync Script zum Auslesen und Schreiben der Informationen

Da es zu den Punkten PSX und Azure App Registration bereits mehrere Artikel sowohl in unserem Blog als auch in diversen Online Dokumentationen (Ivanti Intune Integration, PPB Online Doku) gibt, möchte ich heute nicht mehr genauer darauf eingehen sondern beschäftige mich im weiteren mit dem PowerShell Script zum Auslesen aus Intune und Schreiben der Informationen in DSM.

Verbindungsaufbau zu Intune und DSM per PowerShell 

​Um Microsoft Intune per PowerShell zu managen wird das Microsoft Graph PowerShell SDK benötigt. Dieses fungiert im Grunde als Wrapper für die einzelnen Microsoft Graph-APIs und macht den Zugang per PowerShell möglich. Die Installation des PowerShell SDK kann via PowerShell Gallery erfolgen und erfordert neben PowerShell 5.1 ein .NET Framework 4.7.2 oder höher.

Da das Microsoft Graph PowerShell SDK aus insgesamt 38 eigenständigen Modulen besteht, empfiehlt es sich unter Umständen dieses nicht komplett zu installieren. Für den Verbindungsaufbau bzw. die Verwaltung von Microsoft Intune wird neben dem "Microsoft.Graph.Authentication" Modul, welches standardmäßig installiert wird sofern eines der anderen Sub Module installiert wird, das Modul "Microsoft.Graph.Intune" benötigt.

Zusätzlich dazu muss natürlich unser eigenes PowerShell Modul "PSX7" (NWC PowerShell Extensions for Ivanti DSM) installiert sein.

Damit die gewünschten Informationen verarbeitet werden können wird zunächst eine Verbindung zu beiden Umgebungen hergestellt. Hierfür werden für die Graph API "Connect-MSGraph" die Informationen aus der App Registration verwendet. (Application ID, Tenant ID und Application Secret) Bei der Tenant-ID kann alternativ auch mit dem Domain Name gearbeitet werden. Weiterhin wird die Schema Version der Umgebung auf "Beta" geändert, da das im späteren Verlauf verwendete Cmdlet ansonsten nicht verfügbar ist.

 
Auslesen von Intune Objekt Eigenschaften

Bevor nun Daten synchronisiert werden können, muss zunächst festgelegt werden, welche Daten überhaupt in DSM verfügbar gemacht werden sollen. Um einen Überblick über die Eigenschaften eines Intune Objektes zu erhalten, können wir uns ähnlich dem "Get-EmdbComputer" Cmdlet in PSX nun via "Get-IntuneManagedDevice" diese Eigenschaften anzeigen lassen und bei Bedarf einer PowerShell Variable zuweisen.

 
Setzen der ausgelesenen Werte in DSM Schema-Erweiterungen

Für die gewünschten Informationen werden in DSM entsprechende Schema-Erweiterungen benötigt/angelegt. Da wir die Werte per PowerShell (PSX) setzen spielt es in meinen Augen keine Rolle ob diese per DSMC oder vom Client aus gesetzt werden. Idealerweise sollten diese in DSM jedoch Read-Only und damit nicht über den Property-Grid änderbar sein.

Zu guter Letzt muss eine Verknüpfung zwischen dem DSM und dem Intune Objekt hergestellt werden. Da die beiden Systeme mit der jeweiligen Objekt-Id nichts anfangen können, bleibt als Identifizierungsmerkmal der Name des Clients.

Der Abgleich kann natürlich für alle Objekte oder eben nur für bestimmte Objekte erfolgen. Da Seitens Ivanti bereits eine Schema-Erweiterung "IsIntuneInstalled" gesetzt wird, könnte der Sync auf entsprechende Objekte beschränkt und sogar die Eigenschaften per "VisibleIf" nur dann angezeigt werden, sofern es sich um ein hybrides bzw. per Intune verwaltetes Gerät handelt.