Intune & Endpoint

Forcing an Intune sync, and the three problems that look exactly like a sync failure

The admin centre Sync action got fuller in 2607, and the properties catalog can now read the registry. Neither fixes a policy that was never going to apply.

Forcing an Intune sync, and the three problems that look exactly like a sync failure. Intune & Endpoint article banner on grbadhon.com

Sync in Intune has always meant slightly different things depending on where you pressed it. Service release 2607 changed that for Windows, and it changes how you should troubleshoot: the first question is no longer whether the device synced, it is what you are actually inventorying. Where you force Intune sync from now changes what comes back. On new hardware that inventory starts at enrolment, which is Autopilot device preparation.

What changed

The Sync device action in the admin centre now triggers a fuller synchronisation for Windows devices, spanning configuration policies, apps and scripts rather than a narrower subset. Microsoft calls it especially useful during troubleshooting, incident response and high-priority rollouts, which is a fair description of the three times anyone presses that button.

In the same release, the properties catalog gained the ability to collect Windows registry data. Both entries are dated in the Intune service release notes. You can define a device inventory policy that collects a single value, every value directly under a key, or the same value across subkeys under HKEY_LOCAL_MACHINE.

Worth knowing

That second one quietly removes a whole category of remediation script. It overlaps directly with what Intune proactive remediations was carrying for a lot of estates. If you wrote a proactive remediation purely to read a registry value and report it back, that script is now a policy, and it stops being something that can fail on a device and start being something you can query.

Three ways to force Intune sync, and which one you want

WhereWhat it does
Company Portal, on the deviceUser-initiated check-in. Fastest to trigger, and the one to ask a user for.
Settings, Accounts, Access work or school, Info, SyncThe same MDM check-in without needing Company Portal installed.
Sync action in the admin centreServer-initiated. Now a fuller sync across configuration, apps and scripts.

When a setting has not landed, ask which of these was pressed before assuming the policy is at fault. If none of them produce a result, the full diagnosis order is in Intune device not syncing. A user saying they synced and an admin saying they synced are describing different events. The same distinction matters when offboarding, because Intune wipe vs retire both wait for a check-in.

Forcing it from the device

When you need it done without asking the user to click anything, trigger the MDM push directly.

Invoke-IntuneSync.ps1
# Triggers the MDM enrolment's own scheduled sync tasks. Run elevated.
$enrollmentId = (Get-ScheduledTask -TaskPath "MicrosoftWindowsEnterpriseMgmt*" |
                 Select-Object -First 1).TaskPath.Split('')[-2]

if (-not $enrollmentId) {
    Write-Warning 'No MDM enrolment found. Device is not Intune enrolled.'
    return
}

Write-Host "Enrolment: $enrollmentId"

# Schedule #3 is the push-triggered sync; running them all is harmless.
Get-ScheduledTask -TaskPath "MicrosoftWindowsEnterpriseMgmt$enrollmentId" |
    ForEach-Object {
        Write-Host "Starting: $($_.TaskName)"
        Start-ScheduledTask -TaskPath $_.TaskPath -TaskName $_.TaskName
    }

# Then watch the agent do the work.
Get-WinEvent -LogName 'Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin' `
             -MaxEvents 20 |
    Select-Object TimeCreated, Id, LevelDisplayName, Message |
    Format-Table -Wrap

Triggering it for many devices from Graph

The admin centre action is fine for one device. For a ring, script it.

Sync-IntuneRing.ps1
Connect-MgGraph -Scopes 'DeviceManagementManagedDevices.PrivilegedOperations.All',
                        'DeviceManagementManagedDevices.Read.All'

# Narrow this. Syncing every Windows device at once is not a troubleshooting step.
$devices = Get-MgDeviceManagementManagedDevice -All -Filter "operatingSystem eq 'Windows'" |
           Where-Object { $_.LastSyncDateTime -lt (Get-Date).AddDays(-2) }

Write-Host "Devices not synced in 48 hours: $($devices.Count)"

foreach ($d in $devices) {
    try {
        Sync-MgDeviceManagementManagedDevice -ManagedDeviceId $d.Id -ErrorAction Stop
        Write-Host "Queued: $($d.DeviceName)"
    } catch {
        Write-Warning "Failed: $($d.DeviceName). $($_.Exception.Message)"
    }
    Start-Sleep -Milliseconds 250   # be kind to the throttle
}

Filtering on devices that have not checked in for two days is usually more informative than syncing the ones you were already looking at. The list itself is the finding.

When sync is not the problem

Pressing sync harder does not fix a policy that will never apply. Before you press it a third time, check the three things that look like sync failures and are not: an assignment that targets a group the device is not in, a policy conflict where two profiles set the same value differently, and a device registered for classic Autopilot ignoring a device preparation policy.

All three present identically. The device syncs successfully and the setting does not appear.

Driver deployment fails in exactly the same shape and is worth ruling out separately, because a driver update policy carries prerequisites and a scan cycle of its own. The five causes are set out in Intune driver updates not working.

And when you want the device’s actual state rather than a report of it, device query answers in near real time, but it sits behind a separate subscription and carries limits of its own. Those are set out in Intune Device Query limits and licensing.

Compliance status is the one thing a sync will not hurry, because it is reported back to Intune rather than pushed down to the device. Microsoft puts the full round trip at up to 24 hours, which is set out in why an Intune compliance policy still lags after a sync.

What I would do

Use the fuller admin centre sync when you have made a change and want it now. Use the device-side task trigger when you cannot reach the user. Use the Graph filter when you want to know how many devices are quietly not checking in, which is the question worth asking before any of the others.

And move your registry-reading remediation scripts into the properties catalog. A policy that reports a value is strictly better than a script that might.

Common questions

Use Company Portal, or Settings then Accounts then Access work or school then Info then Sync. To do it without user interaction, start the scheduled tasks under Microsoft Windows EnterpriseMgmt for the enrolment ID, elevated. The admin centre Sync action triggers it from the server side.

The Sync device action now performs a fuller synchronisation for Windows devices across configuration policies, apps and scripts rather than a narrower subset. Microsoft positions it for troubleshooting, incident response and high-priority rollouts.

Yes, from service release 2607. The properties catalog can collect registry data through a device inventory policy: a single value, all values directly under a key, or the same value across subkeys under HKEY_LOCAL_MACHINE. It replaces remediation scripts written purely to read and report a value.

Three causes present identically to a sync failure: the assignment targets a group the device is not in, two profiles set the same setting differently and conflict, or the device is registered for classic Autopilot and is therefore ignoring a device preparation policy. Syncing again does not resolve any of them.

Use Sync-MgDeviceManagementManagedDevice from Microsoft Graph PowerShell, filtered to a meaningful set rather than every device. Filtering to devices that have not checked in for 48 hours is usually more useful than syncing the ones you were already looking at.