To export Autopilot profiles in Microsoft Intune, read the Windows Autopilot deployment profiles from Microsoft Graph with their out-of-box settings and the groups each is assigned to. The profiles are in the beta version of Microsoft Graph only. A change to a profile reaches a device that's already enrolled only after it's reset and enrolled again.
| Method | Best fit |
|---|---|
| PowerShell | A CSV of every deployment profile with its mode, join type, settings and assignments. |
| Admin centre | Reading 1 profile's settings, assignments and devices. |
| Altivane | Recommended for recurring reviews, with every profile and the enrolment status pages in a workbook. |
Before you start
Use an Intune Administrator, or an account with an Intune role that can read enrolment settings, such as Read Only Operator. The tenant needs an active Intune licence. The PowerShell example requests DeviceManagementServiceConfig.; your organisation may require administrator consent.
The profiles are read live. From May 2024 Microsoft replaced several properties with new names and marked the old ones deprecated, so the script reads each new name and falls back to the old one. The beta API changes more often than version 1.0. The examples read and export and change nothing.
Option 1
Export Autopilot profiles with PowerShell
Install the modules once, then connect, read each profile and its assignments and export them.
# Install once, if the modules are not already installed.
Install-Module Microsoft.Graph.Authentication,
Microsoft.Graph.Beta.DeviceManagement.Enrollment -Scope CurrentUser$ErrorActionPreference = 'Stop'
Connect-MgGraph -Scopes 'DeviceManagementServiceConfig.Read.All' -NoWelcome
try {
$items = @(Get-MgBetaDeviceManagementWindowsAutopilotDeploymentProfile -All)
$report = foreach ($item in $items) {
# The newer names first, then the ones used before May 2024.
$oobe = $item.OutOfBoxExperienceSetting
if (-not $oobe.DeviceUsageType) { $oobe = $item.OutOfBoxExperienceSettings }
$locale = $item.Locale
if (-not $locale) { $locale = $item.Language }
$preProvisioning = $item.PreprovisioningAllowed
if ($null -eq $preProvisioning) { $preProvisioning = $item.EnableWhiteGlove }
$convert = $item.HardwareHashExtractionEnabled
if ($null -eq $convert) { $convert = $item.ExtractHardwareHash }
$request = @{ WindowsAutopilotDeploymentProfileId = $item.Id; All = $true }
$targets = Get-MgBetaDeviceManagementWindowsAutopilotDeploymentProfileAssignment @request |
ForEach-Object {
$target = $_.Target.AdditionalProperties
$kind = "$($target['@odata.type'])" -replace '^#microsoft\.graph\.', ''
"$kind $($target['groupId'])".Trim()
}
$type = "$($item.AdditionalProperties['@odata.type'])" -replace '^#microsoft\.graph\.', ''
[pscustomobject]@{
Profile = $item.DisplayName
Type = $type
DeviceUsage = $oobe.DeviceUsageType
UserType = $oobe.UserType
NameTemplate = $item.DeviceNameTemplate
Locale = $locale
PreProvisioning = $preProvisioning
ConvertDevices = $convert
DeviceType = $item.DeviceType
Assignments = @($targets) -join '; '
Modified = $item.LastModifiedDateTime
}
}
$report = @($report | Sort-Object Profile)
if ($report.Count -eq 0) {
Write-Output 'The tenant has no Windows Autopilot deployment profiles.'
} else {
$report | Export-Csv -Path './autopilot-profiles.csv' -NoTypeInformation -Encoding utf8
Write-Output "$($report.Count) deployment profiles written to autopilot-profiles.csv."
}
} finally {
Disconnect-MgGraph | Out-Null
}The CSV has 1 row for each profile. Type is azureADWindowsAutopilotDeploymentProfile for Entra join and activeDirectoryWindowsAutopilotDeploymentProfile for hybrid join, DeviceUsage is singleUser for user-driven and shared for self-deploying, and Assignments lists each target with its group ID, exclusions included. ConvertDevices is the Convert all targeted devices to Autopilot setting. To add the hidden setup pages, add $oobe. and $oobe. to the row; in the older settings they're HideEULA and HidePrivacySettings.
Option 2
Review deployment profiles in the admin centre
- Sign in to the Microsoft Intune admin centre for the correct tenant.
- Select Devices, then under By platform select Windows.
- Under Device onboarding, select Enrollment, then under Windows Autopilot select Deployment profiles.
- Select a profile and read its Properties: the out-of-box settings and the groups it's assigned to. Leave Edit alone, so nothing changes.
This suits checking 1 profile before a deployment. There's no export of the settings here, so a record of every profile, kept from one month to the next, takes PowerShell or a report.
Option 3 ยท Recommended for recurring reviews
Export Autopilot profiles with Altivane
- Open Altivane and choose the tenant.
- Run the Autopilot Profiles report.
- Open the tenant's Excel workbook and find the Autopilot profiles table: each deployment profile with Deployment Mode, Join Type, Device Name Template, Language, Standard User, Skipped Pages, Pre-provisioning, Converts Devices, Assigned To and Devices.
- Read Enrolment status pages for each page in priority order, with what it waits for and who it's assigned to.
The settings are in words: User-driven or Self-deploying, Entra joined or Hybrid joined, and the setup pages each profile skips. Assigned To names the groups rather than their IDs and says Not assigned for a profile with none, and Devices counts the devices each profile is assigned to. A profile whose assignments couldn't be read says Not read, and the report says it's partial. The report needs a tenant signed in with a certificate.
Contact usCommon questions
What happens to a device with no profile assigned?
Microsoft says a device registered in Windows Autopilot with no profile assigned gets the default Windows Autopilot profile. If a device shouldn't go through Autopilot at all, remove its registration.
Why didn't a profile change reach a device?
Microsoft says a changed profile applies to the devices assigned to it, but a device already enrolled in Intune gets it only after it's reset and enrolled again. Profile assignment also takes a while after a device joins an assigned group.
Which devices use each profile?
Each Autopilot device shows its profile and whether it's assigned. See how to export Windows Autopilot devices in Microsoft Intune.
Microsoft references
Technical references checked on 7 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.