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 -Force
Code 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-Null
Code 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-Null
Code 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 @AutopilotParams
Code 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
Hier gib der App einen netten Namen und klicke auf "Register".
Auf dem Startbildschirm der App kannst du die App-ID und die Mandanten-ID in dein Skript kopieren/einfügen.
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.
Kopiere den erstellten Geheimniswert in dein Skript. Der Wert wird nur einmal angezeigt, danach kannst du ihn nicht erneut abrufen.
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.
Nach dem Hinzufügen der Berechtigung ist es sehr wichtig, diese zu genehmigen:
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)