Heute tauchen wir ein in die wunderbare Welt der Automatisierung. Dieses Mal geht es um das Hochladen der Hardware-Hashes für Windows Autopilot in Intune - und das natürlich unter Verwendung der Macht von PowerShell. Sag auf Wiedersehen zu manuellen Registrierungen, bei denen du dich als Administrator anmelden musst, und sag hallo zu einer unkomplizierten und automatisierten Autopilot Registration! 🚀

Table of Contents

Das Skript - Kurz erklärt

Hier ist eine Erklärung der Schritte, die das Skrip selbst durchläuft:

Setzen der Ausführungsrichtlinie

Um loszulegen, müssen wir die Ausführungsrichtlinie mit dem Befehl Set-ExecutionPolicy setzen. Stell es dir vor wie den Türsteher im PowerShell-Club, der sicherstellt, dass unser Skript reibungslos ohne Einschränkungen läuft. Keine unerwünschten Gäste, okay? 😄

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -ForceCode language: PowerShell (powershell)

Installiere benötigte Komponenten

Lass uns nun die notwendigen Zutaten für unser Automatisierungsrezept holen. Wir verwenden den Befehl Install-PackageProvider, um den NuGet-Paketanbieter zu installieren. Dieser praktische Anbieter hilft uns dabei, andere Pakete zu erhalten, die wir für die Autopilot- und Intune-Zauberei benötigen.

Install-PackageProvider -Name NuGet -Force | Out-NullCode language: PowerShell (powershell)

Installiere das Skript und das Modul

Es ist Zeit, die Stars unserer Show einzuführen! Wir verwenden den Befehl Install-Script, um das grossartige Skript namens "Get-WindowsAutoPilotInfo" zu installieren. Dieses Skript hilft uns, alle wichtigen Autopilot-Informationen zu sammeln, die wir benötigen. Aber warte, es gibt noch mehr! Wir benötigen auch das WindowsAutopilotIntune-Modul, das mit dem Befehl Install-Module installiert werden kann. Es ist, als ob wir die perfekte Besetzung für unseren technischen Blockbuster hätten! 🎥🍿

Install-Script -Name Get-WindowsAutoPilotInfo -Force | Out-Null
Install-Module -Name WindowsAutopilotIntune -Force | Out-NullCode language: PHP (php)

Aufforderung zur Eingabe des Gruppentags

Nun fügen wir unserem Automatisierungsrezept eine kleine Würze hinzu. Wir werden dich, den Zauberer hinter dem Bildschirm, auffordern, einen Gruppentag für das Hochladen einzugeben. Dieser Gruppentag hilft dabei, die hochgeladenen Daten zu kategorisieren und erleichtert dir das Leben erheblich, wenn du mehrere Uploads verwalten musst. Du kannst einen Gruppentag eingeben, um die Dinge organisiert zu halten, oder einfach Enter drücken, um ohne Gruppentag fortzufahren. Wie du möchtest, Maestro! 🎵

$GroupTag = Read-Host "To upload with a Group Tag, enter the Group Tag now. Otherwise, press Enter to continue without a Group Tag."Code language: PHP (php)

Get Windows Autopilot Info

Trommelwirbel, bitte! Es ist Zeit, alle Autopilot-Geheimnisse mithilfe des zuvor installierten Skripts zu sammeln. Wir verwenden den Befehl Get-WindowsAutoPilotInfo mit den Parametern, die in unserer Hashtabelle namens $AutopilotParams gespeichert sind. Dieser Befehl ruft die Autopilot-Informationen vom Online-Dienst unter Verwendung deiner angegebenen Anmeldeinformationen und des Gruppentags (falls angegeben) ab und kümmert sich um die Registrierung.

Lehn dich zurück, entspann dich, lass die Magie geschehen und warte bis die Autopilot Registration abgeschlossen ist! ✨

$AutopilotParams = @{
Online = $true
TenantId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
AppId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
AppSecret = "xxxx~xxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxx"
GroupTag = "$GroupTag"
}
Get-WindowsAutoPilotInfo @AutopilotParamsCode language: PowerShell (powershell)


Denke daran, die Parameter mit deinen eigenen Anmeldeinformationen und Gruppen-Tags anzupassen, um die Magie reibungslos für deine spezielle Konfiguration funktionieren zu lassen. Viel Spass beim Automatisieren und mögen deine IT-Abenteuer immer von Freude und Erfolg begleitet sein! 🎉🔥

Die App-Registrierung

Die App-Registrierung ermöglicht uns das Ausführen des Skripts ohne interaktive Authentifizierung.

Erstellung der App-Registrierung

Um die App-Registrierung mit den erforderlichen Berechtigungen zu erstellen, gehe zu Entra.

Applications > App registrations > + New registration

New registration in Entra

Hier gib der App einen netten Namen und klicke auf "Register".

Create a app registration

Auf dem Startbildschirm der App kannst du die App-ID und die Mandanten-ID in dein Skript kopieren/einfügen.

Copy App and Tenant ID

Erstellung des App-Geheimnisses (App secret)

In der App navigiere zu "Certificates & secrets" und klicke auf "+ New client secret".
Hier definierst du einen Namen für das Geheimnis und eine Gültigkeitsdauer. Das Maximum beträgt 2 Jahre.

Add Secret

Kopiere den erstellten Geheimniswert in dein Skript. Der Wert wird nur einmal angezeigt, danach kannst du ihn nicht erneut abrufen.

Get Secret Value

Berechtigungen für unsere App zuweisen

Im Tab "API permissions" önnen wir die bereits vorhandene "User.Read-Berechtigung entfernen und "DeviceManagementServiceConfig.ReadWrite.All" hinzufügen.
Dies ist die Mindestberechtigung, um eine Autopilot Registration zu ermöglichen.

Add App registration permission for Autopilot

Nach dem Hinzufügen der Berechtigung ist es sehr wichtig, diese zu genehmigen:

Grand permission

Erstellung einer EXE-Datei aus dem Skript

Die Benutzer darauf hinzuweisen, das Skript mit einem Rechtsklick und "Mit PowerShell ausführen" auszuführen, funktioniert nicht immer. Für eine bequemere Benutzererfahrung kannst du das PowerShell-Modul "ps2exe" verwenden, um eine EXE-Datei zu erstellen.

# Module Installation
Install-Module -Name ps2exe

# Convert to EXE
ps2exe -inputFile "C:\..\Autopilot-Registration.ps1" -outputFile "C:\..\Autopilot-Registration.exe"Code language: PHP (php)