Schmittel IT Systems

Windows HWID einfach und schneller bei Intune hinzufügen

Das Hinzufügen vorhandener Geräte zu Intune, Windows-Autopilot, kann mühsam und zeitaufwändig sein. Microsoft hat zwar ein Skript zur Verfügung gestellt, aber bei der Dokumentation etwas gespart. 
Mit der folgenden Anleitung sollte es jedem Administrator möglich sein, schnell und einfach sehr viele Geräte auf einmal zu Autopilot hinzuzufügen. 

Microsoft Intune

Vorwort

Die folgende Dokumentation, Anleitung ist für Administratoren gedacht, die bereits Erfahrung im Microsoft 365 Umfeld haben. Es geht ausschließlich um das Hinzufügen von Hardware Hashes zu Intune im Massenverfahren (Geräte > 50). Die folgenden Schritte gehen von einem Szenario aus, in dem die entsprechenden Lizenzen, z.B. M365 Business Premium, bereits im Einsatz sind und alle notwendigen Einstellungen für Intune, Gerätegruppen etc. bereits vorgenommen wurden.

Welche Methoden stehen zur Verfügung? 

  • Export der Hardware Hashes (HWID) als csv-Datei und manueller Upload zu Intune. 
  • Hardware Hashes direkt in Intune hochladen. Zugangsdaten des Administrators müssen jedes Mal am Gerät eingegeben werden. 
  • Hardware Hash Upload direkt zu Intune ohne Eingabe von Administrator Benutzername und Passwort. Einmaliges erstellen einer App Registrierung

Wir werden uns auf den letzten Punkt konzentrieren, da für 1 und 2 Microsoft Learns gut dokumentiert ist.

Folgende Punkte führen zum Erfolg

  1. Registrierung der Anwendung in Entra ID (ehemals Azure AD)
  2. Erstellung des Skripts 
  3. Ausführung des Skripts 
  4. Optionale Erweiterung der Skriptfunktionen

1. Registierung der Anwendung in Entra ID

Eine App Registrierung wird in Entra ID erstellt. Dazu öffnet der Administrator -> entra.microsoft.com -> Anwendungen -> App-Registrierung und klickt auf "+ Neue Registrierung" oder klickt einfach auf folgenden Link: Anwendung registrieren 

  1. Als Name kann "Autopilot HWID App Reg" verwendet werden. Der Name spielt später keine Rolle. 
    Alle anderen einstellungen können voreingestellt gelassen werden. 
  2. Auf "Registrieren" klicken (Der Button ist unten links)
  3. In der Übersicht "Alle Anwendung" die zuvor erstellte Anwendung auswählen
  4. Links im Menü "API-Berechtigungen" anklicken 
    "+ Berechtigung hinzufügen" -> Microsoft Graph -> "Anwendungsberechtigungen"
    Suche nach "DeviceManagementServiceConfig.ReadWrite.All"
    Die Berechtigung auswählen und auf "Berechtigung hinzufügen" klicken
  5. Anschließend die "Administratorzustimmung für Tennant XY erteilen" anklicken 
  6. Nun muss unter "Zertifikate und Geheimnisse" ein geheimer Clientschlüssel erstellt werden
    "+ Neuer geheimer Clientschlüssel" anklicken
    Das Feld "Beschreibung" kann leer bleiben. 
    Für die Gültigkeit kann ein Ablaufdatum / Zeitraum gewählt werden.
  7. Klicken Sie das Copy Icon hinter der Wert Spalte
    Der Wert ist das App Secret
  8. Für das Script benötigen wir noch App ID und Tennant ID
    Die AppID finden Sie in der Übersicht "Alle Anwendungen"
    Die Tennatn ID finden Sie hier unter dem Punkt "Mandanten ID"

 

2. Scripte erstellen und anpassen

Nachdem die Anwendung erstellt wurde und alle notwendigen Informationen zur Verfügung stehen, kann mit der Bearbeitung der Scripte begonnen werden. Die scripte können auf einem USB Stick gespeichert werden und anschließend mit einem rechtsklick "Als Administrator ausführen" gestartet werden. 

Die "right-click-_run_as_admin.bat" Datei führt in Powershell die Datei hwid.ps1 mit Administratorrechten aus. Somit kann gewährleistet werden das alle notwendigen Module, etc installiert werden können

right-click-_run_as_admin.bat 

 

@setlocal enableextensions
@cd /d "%~dp0"
powershell.exe -executionpolicy bypass -file .\hwid.ps1

 

Die Datei "hwid.ps1" enthält das eigentliche Skript, das leicht angepasst werden muss. XYZ muss mit den im ersten Teil der Anleitung generierten Werten gefüllt werden.

 

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.208 -Confirm:$false -Force:$true
Install-Script get-windowsautopilotinfo -Confirm:$false -Force:$true

Get-windowsautopilotInfo -Online -TenantId XYZ -AppId XYZ -AppSecret XYZ

 

Wenn Sie die BAT-Datei auf einem Computer ausführen, wird der Computer bzw. sein Hardware-Hash direkt zu Intune hochgeladen.

Das Skript und damit der Grad der Automatisierung kann bei Bedarf weiter angepasst werden. Mehr dazu im letzten Teil der Anleitung

Folgende Argumente akzeptiert das Script

 

-AssignedComputerName [string]
-GroupTag [string]
-AssignedUser [string] (UPN des Benutzers)
-Partner
-AddToGroup [string]

Beispiel 
Get-windowsautopilotInfo -Online -TenantId XYZ -AppId XYZ -AppSecret XYZ -AssignedComputerName Computer123 -GroupTag ComputerVertrieb -AssigendUser erica.musterfrau@schmittel-it.de

 

 

3. Ausführen des Scripts

Es gibt mehrere Methoden/Szenarien für die ausführung des Scripts. 

Szenario 1: Sie haben neue Geräte bestellt, aber vergessen, die Windows Product Key ID beim Hersteller anzufordern. Bei vielen Herstellern finden Sie diese auf jeder Geräteverpackung.

Szenario 2: Sie haben Geräte welche noch nicht eingerichtet wurden, die Verpackung wurde bereits entsorgt. Starten Sie das Gerät normal. Sobald im OOBE die Sprachabfrage erscheint drücken Sie "Shift" + "F10", es öffnet sich ein CMD-Fenster.
Wechseln Sie nun auf den USB Stick. Je nach Gerät kann der USB Stick einen anderen Laufwerksbuchstaben besitzen. Mit D: wechseln Sie auf das Laufwerk mit dem Laufwerksbuchstaben D.
Führen Sie nun folgenden Befehl in CMD aus. Das Gerät kann anschließend heruntergefahren werden.

 

powershell.exe -executionpolicy bypass -file .\hwid.ps1

 

Szenario 3: Die Geräte sind bereits beim Anwender im Einsatz. Die Geräte sollen alle auf einen einheitlichen Stand gebracht und daher komplett neu konfiguriert werden. Sie haben weder Intune noch AD DS zur Verfügung. Laden Sie das Skript auf ein Netzlaufwerk, einen USB-Stick oder senden Sie es als ZIP-Archiv per E-Mail an die Benutzer. Auf dem Gerät klicken Sie mit der rechten Maustaste auf die BAT-Datei und wählen Ausführen als Administrator. 

Szenario 4: Die Geräte sind bereits beim Nutzer im Einsatz, aber ein AD DS ist verfügbar. In diesem Fall haben Sie die Qual der Wahl. Entweder Sie erstellen ein GPO mit dem PS Script oder Sie führen den Befehl über WMI Remote aus.

4. Optionales anpassen des Scripts

Durch die Anpassung des Skripts kann der Grad der Automatisierung und Standardisierung deutlich erhöht werden. Es lohnt daher die folgenden Optionen in betracht zu ziehen. 

-AssigendUser weist das Gerät einem Benutzer zu. Die Zuweisung des Geräts an einen Benutzer verbessert die Benutzererfahrung, da der Benutzer nur noch sein Kennwort eingeben muss.

 

$email = Read-Host "Bitte geben Sie ihren E-Mail-Adresse (UPN) ein"

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.208 -Confirm:$false -Force:$true
Install-Script get-windowsautopilotinfo -Confirm:$false -Force:$true

Get-windowsautopilotInfo -Online -TenantId XYZ -AppId XYZ -AppSecret XYZ -AssignedUser $email

 

-GroupTag setzt das Gruppen-Tag für das Gerät. Gruppen-Tags können verwendet werden, um dynamische Gruppen in EntraID zu erstellen. Hier kann mit einer Abfrage oder mit einer statischen Variablen gearbeitet werden

 

Get-windowsautopilotInfo -Online -TenantId XYZ -AppId XYZ -AppSecret XYZ -GroupTag $gTag
oder
Get-windowsautopilotInfo -Online -TenantId XYZ -AppId XYZ -AppSecret XYZ -GroupTag GruppeXYZ