Wie verteilst du heute Konfigurationsprofile, Apps oder andere Konfigurationen in Intune? In diesem Blog möchte ich erklären und ein Skript bereitstellen, mit dem du Objekte in Intune ganz einfach in Wellen ausrollen kannst. Ich helfe dir hier dabei, von dir definierte Gruppen zu erstellen, die einen festgelegten Prozentsatz deiner Geräte zusammenfassen, sodass du einen langsamen Rollout durchführen und damit die Qualität sicherstellen kannst. Das aktuelle Skript beschreibt, wie du Gerätegruppen erstellst. Wenn du diese Rollout-Wellen validierst, kann es ausserdem hilfreich sein, die Zuweisungen eines Geräts via PowerShell abzurufen. Wenn dich zudem interessiert, wie du dies auf Benutzergruppen anwendest oder wie du eine Automatisierung für die Zuweisung erstellst, schau dir meine neue Version des Intune Group Assignment Scripts an.

Inhaltsverzeichnis
Wie komme ich an das Skript?
Du findest das Skript in meinem GitHub-Repository.
Was muss ich tun, bevor ich das Skript ausführe?
Bevor du das Skript ausführst, musst du die Tenant-ID, das Client Secret und die App-ID aus deiner App-Registrierung festlegen. Wie du eine App-Registrierung erstellst, findest du weiter unten.
Zusätzlich musst du die Gruppennamen für die verschiedenen Wellen und den Prozentsatz festlegen, wie viele Geräte zu dieser Gruppe hinzugefügt werden sollen. Wenn du mehr Gruppen haben möchtest, musst du nur die folgende Zeile hinzufügen:
$groups += '{"GroupName" : "NAME_OF_THE_GROUP" : "NUMBER_OF_PERCENTS"}' | ConvertFrom-Json
Aktuell verwendet das Skript alle Geräte als Scope. Es ist sehr wichtig, Filter hinzuzufügen, um nur die benötigten Geräte zu erhalten. Wie das Filtern funktioniert, wird weiter unten erklärt. Wenn du mit dem App-Targeting von Intune arbeitest, behalte ausserdem das Verhalten der Applicability Rule im Hinterkopf.

Wie füge ich dem Aufruf einen Filter hinzu?
Du findest im Skript einen Beispielfilter. Du kannst aber nach mehr oder weniger allen Attributen filtern, die du innerhalb des Graph-Objekts hast.
Am besten erstellst du den Filter über den Graph Explorer. Führe dazu eine Abfrage für https://graph.microsoft.com/beta/devices aus, ergänze ?$filter= und füge deine Filterbedingung hinzu. Weitere Informationen findest du in der Microsoft-Dokumentation.
Beispiel:
?$filter=operatingSystem eq 'Windows'
Wie erstelle ich eine App-Registrierung?
- Suche nach Microsoft Entra ID

- Wähle App-Registrierungen

- Wähle + Neue Registrierung

- Gib einen Namen ein und klicke auf Registrieren

- Klicke auf API-Berechtigungen und +Berechtigung hinzufügen

- Wähle Microsoft Graph

- Wähle Anwendungsberechtigungen

- Suche nach Group.ReadWrite.All und Device.Read.All

- Klicke auf Administratorzustimmung erteilen für *** und bestätige mit Ja

- Wähle Zertifikate & Geheimnisse und klicke auf + Neuer geheimer Clientschlüssel

- Gib eine Beschreibung ein und wähle einen Ablaufzeitpunkt
- Klicke auf Hinzufügen

- Kopiere und speichere den Wert und die Geheimnis-ID

Wie funktioniert es und wie kann ich diese Gruppen nutzen?
Das Skript erstellt die Gruppen in der von dir definierten Grösse.

Du kannst diese Gruppen in neu erstellten Konfigurationsprofilen, Apps und allen anderen Intune-Objekten zuweisen. Du kannst mit der ersten Gruppe beginnen, um deine Konfiguration auf wenigen Geräten zu testen, und die nächste Gruppe nach ein oder zwei Tagen hinzufügen. Schliesslich kannst du entweder die letzte Gruppe ergänzen oder alles andere entfernen und die Konfiguration auf alle Geräte anwenden. Natürlich kannst du für die Zuweisung auch Filter verwenden.
Häufige Fehler und praktische Tipps
Ein paar Dinge solltest du im Hinterkopf behalten, wenn du Wellen im Produktivbetrieb einsetzt. Erstens wird die dynamische Gruppenmitgliedschaft von Entra ID nach einem Zeitplan ausgewertet, ein Gerät, das auf deinen Filter passt, landet also nicht sofort in der Wellengruppe. Plane eine kurze Verzögerung ein, bevor du erwartest, dass die Zuweisungen greifen, und gehe nicht davon aus, dass eine leere Gruppe gleich eine falsche Regel bedeutet. Zweitens solltest du sicherstellen, dass sich deine Wellen nicht überschneiden: Qualifiziert sich dasselbe Gerät für Welle eins und Welle zwei, überspringt es faktisch deinen Rollout-Plan, was den Sinn eines gestaffelten Deployments zunichtemacht.
Es hilft ausserdem, für die prozentuale Aufteilung ein stabiles, vorhersehbares Attribut zu wählen, etwa einen Hash der Geräte-ID, statt etwas, das sich häufig ändert wie die letzte Anmeldezeit. So bleibt ein Gerät zwischen den Läufen in derselben Welle, anstatt hin und her zu springen. Behalte schliesslich immer eine kleine Canary-Welle mit Testgeräten, die du direkt kontrollierst, damit du eine Änderung vollständig validieren kannst, bevor sie echte Benutzer erreicht.
Wenn du mit einem verwandten Automatisierungsszenario weitermachen möchtest, schau dir an, wie du Intune-Gerätegruppen via Microsoft Graph API in Benutzergruppen umwandelst.
https://github.com/JayRHa/Intune-Scripts/blob/main/Create-DeploymentGroups/Create-WaveDeplyomentGroups.ps1 is broken! not found page!
Thank you have fixed the link
This is a great post, exactly what I was looking for to create deployments in our enterprise because we are so large. If you can do a write-up for doing the same thing for users that would be great!
Will work on this
it seems it picks only 100 devices, due to limit in API call. Would you be able to add @odata.nextLink, till it reads the last record 🙂
Let me include this
I fixed this can you test this and give me feedback pls
[…] Link: Create Smart Groups for Wave Deployment of Configurations in Intune […]
Great idea, Jannik! Thanks for sharing this. It is an extremely useful script for making ready for phased deployments -a must have and huge timesaver.
For those interested, I rewrote it using MSGraph PowerShell SDK and added a bit of logic.
https://endpointers.wordpress.com/2023/03/28/create-phased-deployment-groups/
Thanks for making an rework 😀
It works perfectly!. Thank you!. Is there anyway that we can scope this script to a existing AAD group, so that it will add devices only from that group?
Yes sure this is possible. Do you need support to adapt the script to do this?
Great. I did manage to modify the script to get members from existing AAD group. Thanks a lot. Since we have 9k+ devices, the script runs more than an hour and access token expires, in the mid of third group creation. I am just working on that to refresh/reissue the access token.