How to structure a new Microsoft Intune environment
Most Intune tenants do not become difficult to manage because of a single bad decision. They become difficult because dozens of small, undocumented decisions accumulate. This guide describes a structure I keep returning to when setting up a new tenant.
By Simon Hoque
- Publication date
- Not yet published
- Estimated reading time
- 9 min read
Start with the group model
Almost every policy in Intune is delivered through a group assignment, so the group model is the real foundation. Decide early which groups are dynamic and which are assigned, and write the rule down next to the group name.
- Device groups for platform, ownership, and deployment ring.
- User groups for licensing, app entitlement, and Autopilot user-driven scenarios.
- One exclusion group per policy family, created up front rather than during an incident.
A naming convention you can read at 2 a.m.
Names should say what the object is, what it targets, and which ring it belongs to. Avoid abbreviations that only make sense to the person who created the object.
| Object | Pattern | Example |
|---|---|---|
| Configuration profile | WIN-CFG-<area>-<ring> | WIN-CFG-BitLocker-Pilot |
| Compliance policy | WIN-CMP-<area>-<ring> | WIN-CMP-Baseline-Prod |
| Device group | GRP-DEV-WIN-<ring> | GRP-DEV-WIN-Pilot |
| Exclusion group | GRP-EXC-<policy> | GRP-EXC-BitLocker |
Deployment rings
Three rings are usually enough: a small pilot for the IT team, a broader early adopter ring, and production. The important part is that every assignment explicitly names its ring, so nothing lands everywhere by accident.
# Illustrative example - review before running in any tenantConnect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All" $profiles = Get-MgDeviceManagementDeviceConfiguration -Allforeach ($p in $profiles) { $assignments = Get-MgDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $p.Id [pscustomobject]@{ Name = $p.DisplayName Assignments = $assignments.Count }}Documentation that survives
A short README in a repository beats a long document nobody opens. Record the purpose of each policy family, who owns it, and the intended ring progression.
Found an error or have a better approach? Report it or suggest an improvement
Related articles
Troubleshooting Win32 app deployments
A repeatable order of investigation for Win32 apps that report failure, stay stuck at pending, or install without appearing installed.
- Publication date
- Not yet published
- Estimated reading time
- 7 min read
Getting started with Microsoft Graph for Intune
How to authenticate, choose the smallest useful permission scope, and read your first device data from Microsoft Graph with PowerShell.
- Publication date
- Not yet published
- Estimated reading time
- 8 min read