Ich stehe oft vor der Herausforderung, dass Field Supporter ohne Intune-Adminrollen Autopilot-Hashes zu Intune hinzufügen müssen. Dieser Prozess kann zeitaufwendig und fehleranfällig sein.

In diesem Artikel zeige ich dir, wie du eine Logic App erstellst, um Hardware-Hashes ohne Adminrechte zu Autopilot hochzuladen. Diese App automatisiert das Hinzufügen von Geräten zu Autopilot.

Table of Contents

Voraussetzungen

Bevor du beginnst, brauchst du Folgendes:

Lösung selbst erstellen

Create a SharePoint list

Erstelle eine SharePoint-Liste, die die Hardware-Hashes der Geräte enthält. Die Liste sollte mindestens zwei Spalten haben:

  • Seriennummer
  • Hardware-Hash

Navigiere zur SharePoint-Seite, auf der du die Liste erstellen willst. Klicke unter "Websiteinhalte" auf "Neu" und dann auf "Liste".

SharePoint, add new list

Vergib einen Namen, z. B. Autopilot Hash Upload.

SharePoint, new list name Autopilot Hash Upload

Füge nun eine neue Spalte namens Hardware-Hash hinzu. Da eine einzelne Textzeile nur 255 Zeichen speichern kann, nutze das Feld "Mehrere Textzeilen".

SharePoint List, add Multiple lines of text field

Für eine bessere Benutzererfahrung kannst du den Titel in Seriennummer umbenennen.
So sieht meine Liste am Ende aus:

SharePoint LIst for Autopilot Hash Upload

Logic App erstellen

Suche im Azure-Portal nach Logic App und klicke auf "Hinzufügen".

Create new Logic App

Wähle als Hosting-Option "Consumption-based", da dies kostenlos ist.

Select Consuumption Logic App plan

Definiere nun das Abonnement, die Ressourcengruppe und den Namen der Anwendung.

Set Logic App Basics in Azure

Nach einem Klick auf Überprüfen + Erstellen wirst du zur Logic App weitergeleitet.

Aktivierung und Berechtigungen für Managed Identity

Um Managed Identity zu nutzen, aktiviere sie unter "Identität" in der Logic App und setze den Status auf Ein.

Enable Managed Identity for Logic App

Jetzt braucht die Logic App die richtigen Berechtigungen, um auf Intune/Autopilot zuzugreifen. Das Azure-Portal bietet hierfür leider keine UI. Doch mit PowerShell kannst du das schnell einrichten.

Falls du das Microsoft Graph PowerShell-Modul noch nicht hast, installiere es mit:

Install-Module Microsoft.Graph -Scope CurrentUser

Nutze dann dieses Skript, um der Managed Identity Berechtigungen zu geben:

# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Application.Read.All","AppRoleAssignment.ReadWrite.All","RoleManagement.ReadWrite.Directory"


# You will be prompted for the Name of you Managed Identity
$MdId_Name = Read-Host "Name of your Managed Identity"
$MdId_ID = (Get-MgServicePrincipal -Filter "displayName eq '$MdId_Name'").id

# Adding Microsoft Graph permissions
$graphApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"

# Add the required Graph scopes
$graphScopes = @(
  "DeviceManagementServiceConfig.ReadWrite.All"
)

ForEach($scope in $graphScopes){
  $appRole = $graphApp.AppRoles | Where-Object {$_.Value -eq $scope}

  if ($null -eq $appRole) { Write-Warning "Unable to find App Role for scope $scope"; continue; }

  # Check if permissions isn't already assigned
  $assignedAppRole = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MdId_ID | Where-Object { $_.AppRoleId -eq $appRole.Id -and $_.ResourceDisplayName -eq "Microsoft Graph" }

  if ($null -eq $assignedAppRole) {
    New-MgServicePrincipalAppRoleAssignment -PrincipalId $MdId_ID -ServicePrincipalId $MdId_ID -ResourceId $graphApp.Id -AppRoleId $appRole.Id
  }else{
    write-host "Scope $scope already assigned"
  }
}

Trigger hinzufügen

Füge einen Trigger hinzu, der die Logic App auslöst, wenn ein neues Element zur SharePoint-Liste hinzugefügt oder geändert wird.

Gehe dazu in den Logic App Designer, klicke auf "Trigger hinzufügen":

Add Trogger to Logic App

Suche anschliessend nach "SharePoint". Wähle den Trigger "Wenn ein Element erstellt oder geändert wird".

Select SharePoint trigger for list items

Verbinde den SharePoint-Connector mit einem Konto, das Zugriff auf die Liste hat. Leider kann hier keine Managed Identity genutzt werden. Stelle also sicher, dass du ein geschütztes Servicekonto verwendest.

Connect SharePoint to Logic App

Aktion hinzufügen

Füge eine HTTP-Aktion hinzu, um den Autopilot-Hash aus der SharePoint-Liste hochzuladen.

Klicke unterhalb des Triggers auf das Pluszeichen und wähle Aktion hinzufügen. Suche nach HTTP und wähle es aus.

Konfiguration der HTTP-Aktion (Hash Upload)

Configure the HTTP action as follows:

MethodPost
URIhttps://graph.microsoft.com/beta/deviceManagement/importedWindowsAutopilotDeviceIdentities
Body{
"serialNumber": "",
"hardwareIdentifier": ""
}
Authentification TypeManaged Identity / System Assigned
Audiencehttps://graph.microsoft.com
Logic App HTTP Post configuration for Autopilot Hash Upload

Logic App testen

Teste deine Logic App, indem du ein neues Element zur SharePoint-Liste hinzufügst. Innerhalb von 1-5 Minuten sollte die App den Hardware-Hash zu Autopilot hochladen.

Zusätzliche Tipps & Verbesserungen

  • Nutze die Aktion E-Mail senden, um Benachrichtigungen zu erhalten, wenn ein Gerät erfolgreich zu Autopilot hinzugefügt wurde.
  • Baue eine Fehlerbehandlung ein, um Benachrichtigungen bei Problemen zu erhalten.
  • Füge eine Option hinzu, um Hashes zu löschen, wenn sie nicht mehr benötigt werden.

Ich hoffe, dieser Artikel hilft dir weiter! Falls du Fragen hast, hinterlasse gerne einen Kommentar.