Bald ist Weihnachten! Und passend dazu habe ich das PowerShell Modul "IntuneStarterKit" geschrieben, welches ich Santa für den "Festive Tech Calendar 2022" mitgegeben habe. Mit dem Modul kannst du sehr schnell eine Grundkonfiguration mit Autopilot, ein paar Apps sowie Windows- und Security-Konfiguration zusammenstellen. So startest du ohne viel Aufwand und Klicks mit dem Management von Windows Geräten mit Intune, beziehungsweise hast das Deployment automatisiert.
Table of Contents
- Kurzübersicht
- Modul installieren
- Intune Umgebung mit dem IntuneStarterKit erstellen
- Eigene Konfiguration verwenden
- Eigene Apps verwenden
- Eigenes Deployment erstellen
- Credits #CommunityRocks
Kurzübersicht
Die Hauptfunktion des Moduls heisst "Add-ISK
" und ruft alle weiteren Funktionen auf, um dir Folgendes bereitzustellen:
- Dynamische Gruppe, die alle Autopilot registrierten Geräte beinhaltet
- Standardgruppe für Apps und Konfigurationen
- Die dynamische Autopilot Gruppe ist Mitglied dieser
- Autopilot Profil mit dem Namen "Default ISK Profile"
- Enrollment Status Page (ESP) mit dem Namen "Autopilot ESP"
- Basis Intune Konfiguration aus meinem GitHub
- Basis Applikationen aus meinem GitHub
- IntuneStarterKit/Samples/Apps at main · FlorianSLZ/IntuneStarterKit (github.com)
- Pro App eine Instalaltions Gruppe, in der die Standardgruppe Mitglied ist
Modul installieren
Um zu starten, musst du als Erstes das Modul bei dir installieren, das kannst du entweder System weit oder auch nur in deinem User Kontext.
# Installation on local machine (as Admin)
Install-Module -Name IntuneStarterKit
# Installation in user context (no Admin needed)
Install-Module -Scope CurrentUser -Name IntuneStarterKit
Code language: PowerShell (powershell)
Bei Problemen bei der Installation, der Authentifizierung oder Modul-Konflikten empfehle ich dir, das Modul in einer Windows Sandbox zu testen. Dann bist du sicher, dass keine alte Modulversion oder etwas anderes auf deinem PC dazwischenfunkt.
Intune Umgebung mit dem IntuneStarterKit erstellen
Die gesamte Umgebung kannst du nach der Installation des Moduls ganz einfach bereitstellen. Im Grunde sogar nur mit dem Befehl "Add-ISK
". Aber es gibt noch ein paar Parameter, die du anfügen kannst. So beispielsweise der -Language
Parameter, da sonst die Sprache auf "de-CH" sein wird.
Weiter unten folgen einige Beispiele.
Und damit hast du das Intune Deployment automatisiert. (Zumindest mit meiner Vorlage)
Hier auch noch der ganze Vorgang in einem GIF:
Und hier die versprochenen Beispiele für eigene Gruppen und Sprachen, aber es kommt noch mehr. Auch Konfigurationen und Apps kannst du nach Belieben einspielen.
# Deploy with an English Autopilot profile (en-us)
Add-ISK -Language "en-us"
# Deploy with different default groups
Add-ISK -APGroupName "WIN-Devices_Autopilot" -StdGroupName "WIN-StandardConfiguration"
# Deploy without a group per app installation
Add-ISK -AppGroup:$false
Code language: PowerShell (powershell)
Eigene Konfiguration verwenden
Um deine eigene Konfigurationsvorlage zu verwenden, kannst du dir die Konfiguration, so wie sie dir gefällt, in Intune zusammenstellen und mit dem Modul "IntuneBackupAndRestore" exportieren.
Für den Export musst du lediglich den Backup Befehl mit der Pfadangabe absetzten:Start-IntuneBackup -Path "C:\temp\IntuneBackup
"
Anschliessend hast du deine eigene Konfigurationsfiles zusammen und kannst diese importieren.
(Die Variabel $GroupID ist dabei die ID der Gruppe, der die Konfigurationen zugewiesen werden. )Add-ISKConfiguration -AssignTo $GroupID -Path "C:\temp\IntuneBackup
"
Du kannst die Konfiguration auch in einem GitHub Repository ablegen (aktuell nur öffentlich) und dann beim Pfad die URL dazu angeben: Add-ISKConfiguration -AssignTo $GroupID -Path "https://github.com/FlorianSLZ/.../Configuration"
Eigene Apps verwenden
Wie bei der Konfiguration kannst du auch bei den Apps deine eigenen angeben. Dazu baust du dir ein Repository im korrekten Format auf. Du packst jedes Win32 App in einen eigenen Ordner mit dem App-Name, in welchem sich das Installwin ebenfalls mit dem App-Namen befindet. Zusätzlich legst du ein Validierungs-Script mit dem Namen "check.ps1" ab.
Falls du noch nie ein Win32 App erstellt hast, findest du auf meinem Blog in der Kategorie "Win32" einige Hilfestellungen und Vorlage: Win32 | scloud
Die Programme/Ordner müssen so aufgebaut sein:
Datei | Zweck |
---|---|
install.ps1 | Installations-Routine |
uninstall.ps1 | Deinstallations-Routine |
check.ps1 | Validierungs-Script |
AppName.intunewin | Intunewinfile der App |
Und das Repository visualisiert, sieht so aus:
Der Befehl, um diese Apps zu importieren und zuzuweisen ist:
# Add and assign App to Group with ID
Add-ISKApps -AssignTo $GroupID -Path "C:\temp\Repository"
# Add and assign App to individual grou per App and add Group with ID as member
Add-ISKApps -AssignTo $GroupID -AppGroup -Path "C:\temp\Repository"
# only add apps (without assigning)
Add-ISKApps -Path "C:\temp\Repository"
Code language: PowerShell (powershell)
Eigenes Deployment erstellen
Hast du die eigenen Apps und Konfigurationen zusammen, hast du alle Voraussetzungen, um dir auch ein eigenes Deployment Script zu schreiben.
Hier zwei Beispiele wie dies aussehen könnte:
# Option 1: Custom Language, Apps, Config and Group names
Add-ISK `
-APGroupName "My-AP-Group" `
-StdGroupName "My-Default-Group" `
-Language "de-CH" `
-AppGroupPrefix "My-App-" `
-AppRepoPath "C:\ISK\Apps" `
-ConfigRepoPath "C:\ISK\Configuration"
# Option 2: Only Autopilot Profile, Apps and Configuration with custom dynamic "marketing" Group
## create dynamic group based on group tag "Marketing"
$APGroupTag = New-MgGroup -DisplayName "DEV-WIN-Marketing" `
-Description "Autopilot group tag: Marketing" `
-MailEnabled:$false `
-SecurityEnabled:$true `
-MailNickname "DEV-WIN-Marketing" `
-GroupTypes "DynamicMembership" `
-MembershipRule '(device.devicePhysicalIds -any (_ -eq "[OrderID]:Marketing"))' `
-MembershipRuleProcessingState "On"
## create Autopilot profile for Marketing
Add-ISKAPProfile -Name "Marketing" -AssignTo $APGroupTag.id -Language "en-UK"
## Import configuration and assign to Marketing group
Add-ISKConfiguration -Path "C:\ISK\Configuration" -AssignTo $APGroupTag.id
## Import Apps for marketing and assign them
Add-ISKApps -Path "C:\ISK\Apps" -AssignTo $APGroupTag.id
Code language: PowerShell (powershell)
Credits #CommunityRocks
Natürlich habe ich nicht alle Funktionen von Grund auf neu aufgebaut. Viele Teile wurden bereits von anderen Community-Mitgliedern erarbeitet oder in einer ähnlichen Form gebraucht.
Folgende Quellen haben mir massgeblich geholfen:
- microsoftgraph/powershell-intune-samples: This repository of PowerShell sample scripts show how to access Intune service resources. They demonstrate this by making HTTPS RESTful API requests to the Microsoft Graph API from PowerShell. (github.com)
- MSEndpointMgr/IntuneWin32App: Provides a set of functions to manage all aspects of Win32 apps in Microsoft Endpoint Manager (Intune). (github.com)
- jseerden/IntuneBackupAndRestore: PowerShell Module that queries Microsoft Graph, and allows for cross-tenant Backup & Restore actions of your Intune Configuration. (github.com)