How to move from on-premises Active Directory to Microsoft Entra ID
Most organisations get to Entra ID in stages: sync identities, move sign-in to the cloud, move devices to Entra join, then shift management of users to the cloud. This guide covers each decision with the commands you will use.
How do you move from on-premises Active Directory to Microsoft Entra ID?
This moves your users, sign-in, devices and apps from on-premises Active Directory (AD, the Windows Server directory) to Microsoft Entra ID (the cloud directory behind Microsoft 365). It is a change of where people are managed, not a data copy.
- Recommended route: Phased move: Cloud Sync with password hash sync, then Entra join and source of authority per user
- Order: Change one layer at a time, from the one everything else depends on: the directory copy first, then sign-in, then devices and apps, and only then who manages each user.
- 7 phases: Get ready, Set up sync, Move sign-in to the cloud, Move devices, Move apps off AD, Hand users to the cloud and Turn off sync and retire AD.
- You're done when: Every user signs in through the Entra sign-in page, and no domain is still federated.
The recommended route copies users to the cloud with Microsoft Entra Cloud Sync (a small agent installed on your servers), moves sign-in to password hash sync (Entra ID checks a hash of each AD password, so users keep one password), Entra joins PCs (joins them to Entra ID instead of AD) as they are reset or replaced, and then transfers source of authority for each user (Microsoft's name for handing that user's management from AD to Entra ID). It happens in stages, not in one weekend: your device refresh cycle and the apps that still need AD set the pace.
Microsoft recommends Cloud Sync for most organisations, password hash sync is the simplest sign-in, and users move one at a time with a rollback.
Other options and when to use them
- Stay hybrid on Microsoft Entra Cloud Sync: AD will stay for a year or more. Stop after the sign-in phase.
- Stay hybrid on Microsoft Entra Connect Sync: You have groups over 50,000 members, more than 150,000 objects in a domain, complex sync rules, or hybrid joined devices that still need device sync.
- Turn off directory sync for the whole tenant: You are small, nothing authenticates to AD any more, and every user can go cloud-only at once.
Change one layer at a time, from the one everything else depends on: the directory copy first, then sign-in, then devices and apps, and only then who manages each user. Every step keeps AD working as the fallback until the last one, which is the only step that is hard to undo.
- Clean up AD: stale accounts, duplicate and badly formatted attributesEverything in sync scope lands in Entra ID, and objects with bad values fail to sync. It is far easier to fix them before the first sync.
- Sync users and groups to Entra ID, with password hash sync turned onCloud sign-in, Entra joined PCs and the final hand-over all need the users in Entra ID first. Password hash sync is also the fallback sign-in if AD FS fails.
- Move sign-in to the cloud: pilot group, then one domain at a timeMicrosoft requires users to stop signing in through AD FS before their management can move, and a pilot shows sign-in problems before a whole domain changes.
- Entra join PCs at their normal reset or replacementThere is no supported in-place conversion, so this step follows your hardware refresh. Hybrid joined PCs keep working meanwhile.
- Move or replace apps that use LDAP or Kerberos with a passwordUsers of these apps cannot move to cloud management, so their apps decide when they can move.
- Finish any Exchange Server to Exchange Online moveMicrosoft lists no on-premises Exchange workloads as a prerequisite for transferring source of authority.
- Transfer source of authority per user: pilot first, then groups of usersEach transfer can be rolled back for that one user, so problems stay small.
- Turn off directory sync, then retire AD FS, sync servers and domain controllersTurning off sync is tenant-wide and cannot be reversed for 72 hours, and a demoted forest only comes back from backup. So it goes last.
Built-in and third-party tools treat these differently. Tick each one off once you have decided.
Download this checklist (Excel)How each tool handles it
Built-in methodMicrosoft calls Cloud Sync the recommended path for most organisations. Cloud Sync does not support groups over 50,000 members, more than 150,000 objects per domain, or device sync for hybrid join. Connect Sync supports these but needs a dedicated server and a sync cycle at least every 7 days.Tip: If you still hybrid join new PCs, stay on Connect Sync until they are all Entra joined, then switch.
Microsoft Learn: Microsoft Entra Cloud Sync migration decision guideHow each tool handles it
Built-in methodBoth Cloud Sync and Connect Sync copy everything in the OUs you scope, including disabled and test accounts. Neither cleans up AD for you.Tip: Scope to the OUs that hold real people and groups, and move service and test accounts out of them.
Microsoft Learn: Microsoft Entra Cloud Sync migration decision guideHow each tool handles it
Built-in methodMicrosoft requires these values to be unique. Connect Sync and Cloud Sync do not fix them: the affected objects report errors and stay out of sync until you fix them in AD.IdFixFree Microsoft tool that lists duplicate and malformed attributes before sync, so you can fix them in bulk.Tip: Fix values in AD, not in the cloud, and rerun the scan before every widening of scope.
Microsoft Learn: Synchronize domain users to Microsoft 365How each tool handles it
Built-in methodMicrosoft recommends turning on password hash sync whatever method you pick, because it is the fallback if AD or AD FS fails. Failover to it is manual.Tip: Turn password hash sync on now, even if AD FS stays for a while, and write the failover steps into your rollback plan.
Microsoft Learn: Authentication for Microsoft Entra hybrid identity solutionsHow each tool handles it
Built-in methodStaged rollout accepts up to 10 groups per feature, no nested or dynamic groups, and 200 users or fewer in a new group when you first add it.Tip: Create plain cloud security groups for each wave, with directly added members.
Microsoft Learn: Migrate to cloud authentication using Staged RolloutHow each tool handles it
Built-in methodStaged rollout does not cover legacy authentication: those clients keep signing in through federation until the domain converts.Tip: Filter the Entra sign-in logs by client app for legacy clients, and move each one to modern authentication first.
Microsoft Learn: Migrate to cloud authentication using Staged RolloutHow each tool handles it
Built-in methodConverting a domain from federated to managed affects every user on it at once. Microsoft says it can take up to 60 minutes, and new browser sign-ins may not prompt during that time.Tip: Convert the smallest or a test domain first, out of business hours, and keep AD FS until every domain is done.
Microsoft Learn: Migrate from federation to cloud authenticationHow each tool handles it
Built-in methodMicrosoft has no supported way to turn a hybrid joined PC into an Entra joined one without a Windows reset. Hybrid joined PCs need regular network contact with a domain controller.Quest On Demand MigrationConverts domain joined or hybrid joined Windows 10 and 11 PCs to Entra joined and keeps user profiles. Not Microsoft supported, so pilot each model.ForensiT User Profile WizardMoves the existing domain profile to the user's Entra ID account. The join itself uses a provisioning package.Tip: Put the reset date for each PC in your device list, and keep VPN in place for remote hybrid joined PCs until then.
Microsoft Learn: Join your cloud-native endpoints to Microsoft EntraHow each tool handles it
Built-in methodEntra joined PCs are not in AD, so Group Policy does not reach them. Settings must be rebuilt as Intune policies.Tip: Import your GPO reports into Intune Group Policy analytics to see which settings have a cloud equivalent, and rebuild only those you still need.
Microsoft Learn: Join your cloud-native endpoints to Microsoft EntraHow each tool handles it
Built-in methodMicrosoft says Entra joined PCs can open on-premises resources with single sign-on, as long as the PC can reach a domain controller.Tip: Test a share by path and a network printer on an Entra joined pilot PC, on site and over VPN.
Microsoft Learn: Join your cloud-native endpoints to Microsoft EntraHow each tool handles it
Built-in methodMicrosoft says users of apps that need password-based LDAP bind or Kerberos with a password cannot move to cloud management.Tip: Give each app an owner and a date in your application inventory, because the last app sets the date AD can go.
Microsoft Learn: Configure user Source of AuthorityHow each tool handles it
Built-in methodTransfer is per user through Microsoft Graph and can be rolled back per user. It needs Connect Sync 2.5.76.0 or Cloud Sync agent 1.1.1370.0 or later, no on-premises Exchange workloads and no AD FS sign-in for those users. Microsoft lists Entra ID Free as the licence.Tip: Start with a few pilot users and check the audit log entry and that each one is editable in the Entra admin center.
Microsoft Learn: Configure user Source of AuthorityHow each tool handles it
Built-in methodTurning off directory sync is tenant-wide, clears on-premises properties, and cannot be turned back on for 72 hours.Tip: Do it only after every user has moved and the sync client is uninstalled, never as a troubleshooting step.
Microsoft Learn: Turn off directory synchronization for Microsoft 365How each tool handles it
Built-in methodOnce the last domain controller is demoted, only a system state backup can bring the forest back.Tip: Review logon events (4624) across a full business cycle, including month-end and year-end jobs, before you demote.
- 1
Get ready
Before you change anythingShow the detailed steps (4) →Watch out: Duplicate or badly formatted mail, proxyAddresses or userPrincipalName values stop those objects syncing.
Ways around it
- Fix the values in AD, not in the cloud, and rerun the scan until it is clean.
Tools that can do it
- IdFixFree Microsoft tool that lists duplicate and malformed attributes before sync, so you can fix them in bulk.
- 2
Set up sync
Watch out: Cloud Sync does not support groups over 50,000 members, more than 150,000 objects per domain, or device sync for hybrid join.
Ways around it
- Stay on Connect Sync until the blocker is gone, for example until devices are Entra joined.
Show the detailed steps (5) →Watch out: Connect Sync only: Microsoft says a sync cycle must complete at least once every 7 days, so a long pause is not safe.
Ways around it
- Pause the scheduler only for a change window, and check it with Get-ADSyncScheduler.
- 3
Move sign-in to the cloud
Watch out: Staged rollout does not accept nested or dynamic groups, and allows up to 10 groups per feature.
Ways around it
- Create plain cloud security groups for each pilot wave.
Watch out: Legacy sign-in such as POP3 and SMTP ignores staged rollout, so scanners and old apps can break when AD FS goes.
Ways around it
- Find legacy clients in the Entra sign-in logs and move them to modern authentication before converting domains.
Show the detailed steps (4) →Watch out: Converting a domain from federated to managed affects every user on it at once, and Microsoft says it can take up to 60 minutes.
Ways around it
- Convert one domain at a time, test domain first, and keep AD FS until all are done.
- 4
Move devices
At each PC's normal reset or replacementWatch out: Microsoft has no supported way to turn a hybrid joined PC into an Entra joined one without a Windows reset.
Ways around it
- Reset or replace PCs on their normal refresh cycle, using Autopilot.
Tools that can do it
- Quest On Demand MigrationConverts domain joined or hybrid joined Windows 10 and 11 PCs to Entra joined and keeps user profiles. Not Microsoft supported, so pilot each model.
- ForensiT User Profile WizardMoves the existing domain profile to the user's Entra ID account. The join itself uses a provisioning package.
Show the detailed steps (4) →Watch out: Microsoft says hybrid joined PCs become unusable without regular line of sight (network contact) to a domain controller.
Ways around it
- Keep VPN or office connectivity for those PCs until each is Entra joined.
- 5
Move apps off AD
Show the detailed steps (3) →Watch out: Users of apps that need password-based LDAP bind or Kerberos with a password cannot move to cloud management.
Ways around it
- Leave those users on AD until their apps are replaced or modernised.
- 6
Hand users to the cloud
Watch out: The transfer needs no on-premises Exchange workloads and no AD FS sign-in for those users.
Ways around it
- Complete the Exchange to Exchange Online move and the domain conversion before this phase.
Show the detailed steps (6) →Watch out: Source of authority transfer (handing a user's management from AD to Entra ID) is a newer Microsoft feature.
Ways around it
- Check its release status on Microsoft Learn before production use, and keep the per-user rollback steps handy.
- 7
Turn off sync and retire AD
When nothing depends on ADWatch out: Turning off directory sync applies to the whole tenant. You must wait 72 hours to turn it back on, and on-premises properties are cleared.
Ways around it
- Do it last, after per-user transfers, and never as a troubleshooting step.
Show the detailed steps (2) →Watch out: Once the last domain controller is demoted, only the system state backup can bring the forest back.
Ways around it
- Keep the backup, and record who approved each step that cannot be undone.
- Every user signs in through the Entra sign-in page, and no domain is still federated.
- Every PC shows AzureAdJoined YES and DomainJoined NO in dsregcmd /status.
- Every user shows isCloudManaged true (managed in Entra ID, not AD), or directory sync is off for the tenant.
- Domain controller logs show no logons from users, services or computers before the last one is demoted.
Tools named in this plan are independent third-party products, not endorsed by the platform vendor and not paid placements. Check the tool's own documentation and run a pilot first.
What does each step involve?
Open a part when you reach it in the plan. Each step says where to go, what to do and what you should see.
About this migrationWhat it covers, limits at a glance
Moving identity off Active Directory is rarely a single cutover. Users, sign-in, devices and applications each move on their own timeline. A typical path is: sync users with Entra Connect Sync or Cloud Sync, use cloud authentication (password hash sync), Entra join new devices through Intune and Autopilot, move apps that need LDAP or Kerberos, and finally make Entra ID the source of authority for users.
If you are also moving mail, finish the mailbox move first: Microsoft says user SOA transfer requires that you have no on-premises Exchange workloads. See Exchange to Exchange Online.
1What you need before step one
| Need | Details | Where to get it |
|---|---|---|
| Hybrid Identity Administrator in Microsoft Entra ID | To install sync agents, turn on staged rollout and check Entra Connect status. | Microsoft Entra admin center, https://entra.microsoft.com |
| Hybrid Administrator, plus Application Administrator or Cloud Application Administrator | Hybrid Administrator calls the source of authority (SOA) APIs. One of the application roles grants consent to the Graph permission. | Microsoft Entra admin center, Roles and administrators |
| Enterprise Admin or Domain Admin in Active Directory | For Connect Sync setup, the Cloud Sync agent service account and the seamless SSO computer account. | Your AD forest |
| Admin PC with the Active Directory and Group Policy PowerShell modules | Install the Remote Server Administration Tools (RSAT) for Active Directory on a domain-joined Windows PC. | Windows Settings, Optional features (RSAT) |
| Microsoft Graph PowerShell | For domain conversion, SOA transfer and turning off sync. | Install Microsoft Graph PowerShell and connect |
| A sync server or agent server | An existing Connect Sync server, or a domain-joined Windows Server for Connect Sync or Cloud Sync agents. | Install Microsoft Entra Connect Sync, or the Cloud Sync steps in Step 2 |
| Intune and Entra licences for device and policy work | Entra join with Intune and Autopilot needs Intune licensing. Check Microsoft's current licensing pages. | Microsoft 365 admin center, Billing |
2Assess what depends on AD4 steps
- 1
Inventory identities
Where: Windows PowerShell on a domain-joined admin PC with the Active Directory module, then your Identity and licence mapping sheetCount users, groups, contacts, service accounts and computers per domain and forest. Run the commands once per domain, adding
-Server contoso.comto each command for other domains. Note large groups: Cloud Sync supports groups up to 50,000 members, Connect Sync supports larger ones. Record the counts and the largest groups in the mapping sheet.Get-ADForest | Select-Object -ExpandProperty Domains (Get-ADUser -Filter *).Count (Get-ADGroup -Filter *).Count (Get-ADComputer -Filter *).Count (Get-ADObject -Filter 'objectClass -eq "contact"').Count Get-ADGroup -Filter * -Properties member | Select-Object Name, @{n='Members';e={$_.member.Count}} | Sort-Object Members -Descending | Select-Object -First 20You should see: The first command lists every domain in the forest, the next four each return a number, and the last lists the 20 largest groups with their member counts. - 2
Inventory AD-dependent apps
Where: Your Application inventory and dependency map, filled in with each app ownerAdd one row per app with columns for app name, owner, server, sign-in method (LDAP bind, Kerberos, NTLM, AD FS or other) and number of users. Microsoft says users can't move to cloud SOA if they still use apps needing password-based LDAP bind or Kerberos with a password, so mark those rows clearly.
You should see: Every app in use has an owner and a sign-in method recorded, and the LDAP and Kerberos apps are flagged. - 3
Inventory devices and policy
Where: Windows PowerShell on the same admin PC, with the Active Directory and Group Policy modulesList domain-joined PCs and servers by operating system, and list every Group Policy object. Add your imaging tools to the sheet. Hybrid join is the right fit only if you still need Group Policy, existing imaging or Win32 apps that rely on AD machine authentication.
Get-ADComputer -Filter * -Properties OperatingSystem | Group-Object OperatingSystem | Select-Object Count, Name Get-GPO -All | Select-Object DisplayName, GpoStatus, ModificationTimeYou should see: A count of computers per operating system, then a list of GPOs with their status and last change date. - 4
Inventory federation
Where: Windows PowerShell run as administrator on the primary AD FS serverIf you run AD FS, list relying parties and back up the Microsoft 365 relying party trust and its claims rules, as Microsoft recommends before changing sign-in. If you use a third-party IdP, export its list of connected apps from its own admin console. These need a plan before you change sign-in.
Get-AdfsRelyingPartyTrust | Select-Object Name, Enabled, Identifier (Get-AdfsRelyingPartyTrust -Name "Microsoft Office 365 Identity Platform") | Export-CliXML "C:\temp\O365-RelyingPartyTrust.xml"You should see: A list of relying party trusts, and an O365-RelyingPartyTrust.xml file in C:\temp.
3Choose Connect Sync or Cloud Sync5 steps
Microsoft says new identity and synchronisation features are being developed primarily on Cloud Sync, making it the recommended path for most organisations. Stay on Connect Sync if you have a confirmed blocker.
| Need | Connect Sync | Cloud Sync |
|---|---|---|
| Users, groups, contacts, password hash sync, password writeback | Yes | Yes |
| Exchange hybrid attributes | Yes | Yes |
| Groups over 50,000 members | Yes | No |
| More than 150,000 objects per domain | Yes | No |
| Complex custom sync rules | Yes | Expression builder only |
| Configure pass-through auth or AD FS from the tool | Yes | Managed separately |
| Disconnected forests (mergers) | No | Yes |
| Multiple active agents with automatic failover | No | Yes |
| Provision cloud groups to AD | No | Yes |
| Configuration managed in Entra admin center | No | Yes |
- 1
Check the Connect Sync scheduler
Where: Windows PowerShell run as administrator on the existing Microsoft Entra Connect Sync serverCheck the scheduler settings, then start a delta sync to confirm sync works. The default cycle is every 30 minutes. If you have no sync server yet and Connect Sync is the right choice, install Microsoft Entra Connect Sync first.
Get-ADSyncScheduler Start-ADSyncSyncCycle -PolicyType DeltaYou should see: Get-ADSyncScheduler shows SyncCycleEnabled : True and the current sync interval. Start-ADSyncSyncCycle returns Result Success. - 2
Pause sync for changes
Where: Windows PowerShell run as administrator on the Connect Sync serverDisable the scheduler while you change configuration, and turn it back on afterwards. Microsoft says a sync cycle must run at least once every 7 days.
Set-ADSyncScheduler -SyncCycleEnabled $false # make changes Set-ADSyncScheduler -SyncCycleEnabled $trueYou should see: Get-ADSyncScheduler shows SyncCycleEnabled : False while paused and True again when you finish. - 3
Download the Cloud Sync agent
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra Connect > Cloud Sync > Agents, signed in on the agent serverCloud Sync uses a lightweight provisioning agent with outbound-only connections. Sign in as at least a Hybrid Identity Administrator. Select Download on-premises agent, then Accept terms & download.
You should see: AADConnectProvisioningAgentSetup.exe is in the Downloads folder on the server. - 4
Install and register the agent
Where: The agent server, File Explorer > Downloads, then the provisioning agent configuration wizardRun
AADConnectProvisioningAgentSetup.exe. Tick I agree to the license terms and conditions and select Install. On Welcome select Next. On Connect Microsoft Entra ID sign in as a Hybrid Identity Administrator. On Configure Service Account choose Create gMSA (enter domain administrator credentials) or Use custom gMSA. On Connect Active Directory add your domain with Add directory if it is not listed, then select Next, Next and Confirm. The agent does not sync anything until you create a Cloud Sync configuration.You should see: A notification says the agent configuration was successfully verified. In the admin center, Entra Connect > Cloud Sync > Agents lists the agent with status active. - 5
Add a second agent and check for blockers
Where: A second domain-joined server, then Microsoft Entra admin center > Entra Connect > Cloud SyncRepeat the install on another server: deploy more than one agent for failover. Microsoft's guided migration tool currently lists device synchronisation as a migration blocker, so check it if you use hybrid join before moving off Connect Sync.
You should see: Two agents show as active on the Agents page.
4Choose the sign-in method4 steps
| Method | Where passwords are checked | Infrastructure | Notes |
|---|---|---|---|
| Password hash sync (PHS) | Microsoft Entra ID | Sync only | Microsoft says least effort to deploy and maintain |
| Pass-through authentication (PTA) | On-premises AD via agents | Microsoft recommends three agents; unconstrained access to DCs; not in a perimeter network | Enforces on-premises account states and sign-in hours immediately |
| Federation (AD FS) | AD FS | Two or more AD FS servers, two or more WAP servers, load balancing, TLS certificate | Microsoft says more complex to operate and troubleshoot |
- 1
Enable password hash sync regardless
Where: Microsoft Entra Connect wizard on the sync server: Configure > Customize synchronization options > Optional featuresMicrosoft recommends enabling PHS with whichever method you choose. Entra ID Protection needs PHS for the leaked credentials report, and PHS is the fallback if PTA or AD FS fail. Failover is manual, through Entra Connect. Tick Password hash synchronization on Optional features, finish the wizard with Configure, and let a full password hash sync run.
You should see: In the Microsoft Entra admin center, Entra ID > Entra Connect > Connect sync shows Password Hash Sync as Enabled. - 2
Test with staged rollout
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Entra Connect > Connect sync > Staged rollout of cloud authenticationIf you federate today, Microsoft recommends testing cloud authentication with staged rollout for a pilot group. Use a cloud security group (nested and dynamic groups are not supported) with 200 members or fewer when you first add it. Select Enable staged rollout for managed user sign-in, slide Password Hash Sync to On (optionally Seamless single sign-on too) and add the pilot group. You can add up to 10 groups per feature. Reconfigure SaaS apps federated with AD FS to authenticate with Entra ID (see Step 5).
You should see: A pilot user opening https://myapps.microsoft.com in a private browser window sees the Entra tenant-branded sign-in page instead of being redirected to AD FS. - 3
Record the current federation settings
Where: PowerShell 7 on your admin PC, signed in with Microsoft Graph PowerShellRecord the current federation settings for each domain before you convert it. Microsoft says to review PreferredAuthenticationProtocol, federatedIdpMfaBehavior, SupportsMfa and PromptLoginBehavior for customisations. Save the output with your rollback plan.
Connect-MgGraph -Scopes "Domain.ReadWrite.All","Directory.AccessAsUser.All" Get-MgDomainFederationConfiguration -DomainId contoso.com | Format-ListYou should see: The federation settings for contoso.com print as a list. Save them to a file. - 4
Convert federated domains to managed
Where: The same PowerShell 7 session, connected to Microsoft GraphConvert each domain. Microsoft says conversion may take up to 60 minutes and you do not have to convert all domains at once, so start with a test domain or the one with fewest users. Schedule it out of business hours. If Entra Connect originally configured your AD FS farm, Microsoft also documents doing this in the wizard under Configure > Change user sign-in > Password hash synchronization.
Update-MgDomain -DomainId contoso.com -AuthenticationType "Managed" Get-MgDomain -DomainId contoso.comYou should see: Get-MgDomain shows AuthenticationType Managed. In the Entra admin center, Entra ID > Entra Connect shows Federation as Disabled.
5Decide on device join4 steps
| Join type | What it is | Use when |
|---|---|---|
| Microsoft Entra joined | Joined only to Entra ID, managed by Intune | Default for new, refurbished and reset Windows devices |
| Microsoft Entra hybrid joined | Joined to on-premises AD and registered in Entra ID | You still need Group Policy, existing imaging, or Win32 apps that rely on AD machine authentication |
- 1
New devices: Entra join
Where: Microsoft Intune admin center (https://intune.microsoft.com) for Windows Autopilot, or on a single pilot PC: Settings > Accounts > Access work or school > ConnectMicrosoft says Entra join should be the default for new and reset endpoints, and hybrid join for new endpoints is typically not recommended. At scale, register devices with Windows Autopilot (export the Autopilot hardware hash) and assign a deployment profile that uses Microsoft Entra join. For a single pilot PC, select Connect, then Join this device to Microsoft Entra ID and sign in as the user.
dsregcmd /statusYou should see: On the device, dsregcmd /status shows AzureAdJoined : YES and DomainJoined : NO. - 2
Existing devices: plan resets
Where: Your device inventory sheet, then on each device at its refresh dateMicrosoft states there is no supported path to convert a hybrid joined device to Entra joined without a Windows reset. Add a target reset or replacement date to each hybrid joined device in your inventory, and reset or replace devices on their normal refresh cycle.
You should see: Every hybrid joined device has a planned date. After reset, dsregcmd /status shows AzureAdJoined : YES and DomainJoined : NO. - 3
Keep line of sight for hybrid devices
Where: Your VPN or network design for remote staff, checked on a hybrid device with Command PromptHybrid joined devices need periodic network line of sight to domain controllers. Without it they become unusable. Keep VPN or other connectivity in place until each device has been reset to Entra join.
dsregcmd /statusYou should see: A hybrid device shows AzureAdJoined : YES and DomainJoined : YES, and users can sign in away from the office over VPN. - 4
Test on-premises resources
Where: An Entra joined pilot PC signed in as a pilot user, in File Explorer and Settings > Bluetooth & devices > Printers & scannersMicrosoft says Entra joined devices can access on-premises resources with single sign-on. Open a file share by path (for example
\\fs01\Shares\Finance) and add a network printer. Test with a pilot group before scaling.You should see: The share opens without a password prompt and the printer installs.
6Move applications off AD3 steps
- 1
SaaS and federated apps
Where: Microsoft Entra admin center > Entra ID > Enterprise apps > New application, then AD FS Management on the AD FS serverSearch the gallery for the app, add it, open Single sign-on and choose SAML or OpenID Connect as the app supports, then assign a pilot group. Once users sign in through Entra ID, remove the AD FS relying party. Microsoft suggests confirming with Microsoft Entra Connect Health that no new AD FS requests arrive before removing the Microsoft 365 trust.
Remove-AdfsRelyingPartyTrust -TargetName "App name"You should see: Pilot users reach the app from https://myapps.microsoft.com and the relying party no longer appears in AD FS Management. - 2
Kerberos apps
Where: Your Windows Hello for Business deployment in Intune, following Microsoft's cloud Kerberos trust guidance on Microsoft LearnFor apps that still need Kerberos, Microsoft points to passwordless sign-in with Windows Hello for Business and Cloud Kerberos Trust. With Cloud Sync provisioning to AD, Entra ID can remain the source of authority while an AD account is maintained.
You should see: A pilot user signs in with Windows Hello for Business and opens the Kerberos app without a password prompt. - 3
LDAP apps
Where: Your Application inventory and dependency map, and each app's own LDAP or directory settings screenFor each app flagged for LDAP, record the LDAP server and bind account from its settings. Replace or modernise apps that use password-based LDAP bind before transferring those users' source of authority.
You should see: Every LDAP app has a replacement or modernisation date, and its users are excluded from SOA transfer until then.
7Make Entra ID the source of authority6 steps
Microsoft documents user source of authority (SOA) transfer: an administrator moves management of a synced user from AD DS to Entra ID, after which sync no longer updates the object. Check its current release status on Microsoft Learn before production use.
- 1
Meet the prerequisites
Where: The sync server: Control Panel > Programs and Features (Connect Sync), or the Properties > Details tab of C:\Program Files\Microsoft Azure AD Connect Provisioning Agent\AADConnectProvisioningAgent.exe (Cloud Sync)Microsoft lists: Connect Sync 2.5.76.0 or later, or Cloud Sync provisioning agent 1.1.1370.0 or later; Hybrid Administrator role; Entra Free licence; no on-premises Exchange workloads; no AD FS federated authentication for the users; and no apps needing password-based LDAP bind or Kerberos with a password. Read the version number and upgrade if it is lower.
You should see: The installed version is at or above the minimum and the user is clear of every listed dependency. - 2
Consent to the Graph permission
Where: PowerShell 7 with Microsoft Graph PowerShell, signed in as Application Administrator or Cloud Application AdministratorConnect with the documented permission and accept the consent prompt. Microsoft also documents granting it in Graph Explorer under Consent to permissions.
Connect-MgGraph -Scopes "User-OnPremisesSyncBehavior.ReadWrite.All" Get-MgContext | Select-Object -ExpandProperty ScopesYou should see: The scope list includes User-OnPremisesSyncBehavior.ReadWrite.All. - 3
Check a user's state
Where: The same PowerShell session, then Microsoft Entra admin center > Entra ID > UsersRead the user's current setting. In the admin center, open the user: synced users have read-only fields and show the source as Windows Server AD DS.
Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/users/user@contoso.com/onPremisesSyncBehavior?`$select=isCloudManaged"You should see: The response shows isCloudManaged False. - 4
Transfer SOA
Where: The same PowerShell session, then the Audit logs page in the Microsoft Entra admin center (search for audit logs)Set
isCloudManagedto true and read it back. Confirm the "Change Source of Authority from AD to cloud" entry in the audit log, then confirm the user can be edited in the cloud.Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/users/user@contoso.com/onPremisesSyncBehavior" -Body '{"isCloudManaged": true}' -ContentType "application/json" Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/users/user@contoso.com/onPremisesSyncBehavior?`$select=isCloudManaged"You should see: The GET returns isCloudManaged True, the audit log shows the activity, and the user's fields are editable in the admin center. - 5
Keep on-premises attributes if needed
Where: Microsoft Graph, for the transferred user objectsTransferred users keep attributes such as onPremisesSamAccountName and onPremisesSecurityIdentifier. Microsoft says you maintain them through Graph if users still need on-premises access. Do not delete them if users still need on-premises resource access.
You should see: Transferred users still reach on-premises file shares and apps that use these attributes. - 6
Rollback
Where: Microsoft Graph PowerShell, then Windows PowerShell on the Connect Sync serverMicrosoft documents a rollback: remove the user from SOA-transferred groups and access packages, set
isCloudManagedto false, and run a sync cycle. Microsoft's steps also turn off theblockCloudObjectTakeoverThroughHardMatchEnabledfeature flag first and turn it back on afterwards; follow the Configure user Source of Authority page for that call. The rollback is not complete until the next sync finishes.Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/users/user@contoso.com/onPremisesSyncBehavior" -Body '{"isCloudManaged": false}' -ContentType "application/json" # on the Connect Sync server Start-ADSyncSyncCycle -PolicyType DeltaYou should see: The audit log shows "Undo changes to Source of Authority from AD DS to cloud" and, after the sync, the user is read-only in the cloud again.
8Turn off directory sync (whole tenant)2 steps
When nothing depends on AD any more, you can turn off directory synchronisation for the tenant. This converts synced users and groups to cloud-only.
- 1
Uninstall the sync client first
Where: The sync server or agent servers: Control Panel > Programs and FeaturesMicrosoft advises uninstalling Connect Sync or Cloud Sync first if the goal is permanent, otherwise the portal may show optional features such as PHS as still enabled. Select the Microsoft Entra Connect entry (or the provisioning agent) and choose Uninstall.
You should see: The sync software no longer appears in Programs and Features, and Cloud Sync agents no longer show as active in the Entra admin center. - 2
Turn off sync with Microsoft Graph PowerShell
Where: PowerShell 7 on your admin PC, signed in as a Hybrid Identity AdministratorRun the commands below. Read the 72-hour warning first.
Install-Module Microsoft.Graph -Force Connect-MgGraph -Scopes "Organization.ReadWrite.All,Directory.ReadWrite.All" $organizationId = (Get-MgOrganization).Id $params = @{ onPremisesSyncEnabled = $false } Update-MgOrganization -OrganizationId $organizationId -BodyParameter $params Get-MgOrganization | Select OnPremisesSyncEnabledYou should see: The last command no longer shows OnPremisesSyncEnabled as True, and synced users become editable in the cloud as the change completes.
9Decommission AD3 steps
- 1
Confirm nothing authenticates to AD
Where: Each domain controller: Event Viewer > Windows Logs > Security, or Windows PowerShell run as administratorReview domain controller security logs for remaining logons from users, services and devices. Filter for logon event 4624 and note any account or computer that is not the DC itself.
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 200 | Select-Object TimeCreated, MessageYou should see: Over an agreed observation period, no user, service or workstation logons appear apart from the ones you have planned to remove. - 2
Retire servers in order
Where: Server Manager > Manage > Remove Roles and Features on AD FS and WAP servers, Programs and Features on the sync server, then PowerShell on each domain controllerRemove AD FS and WAP servers, sync servers, then demote domain controllers once no device or app needs them. Demote the last domain controller only after the backup in the next step.
Uninstall-ADDSDomainControllerYou should see: Each server restarts without the role, and the demoted DC no longer appears in Active Directory Sites and Services. - 3
Keep backups
Where: Windows PowerShell run as administrator on a domain controller, writing to a separate backup volumeTake and retain a system state backup of a domain controller in line with your records policy.
wbadmin start systemstatebackup -backupTarget:E:You should see: wbadmin reports that the backup operation successfully completed. Store the backup per your records policy.
What can go wrong, and how do you avoid it?
The detail behind the plan: options compared, and what experienced engineers check first. Tap any item.
Compare all the ways to do this4 options
Stay hybrid on Microsoft Entra Cloud Sync
Low effortBest for: Organisations keeping AD for now with no Connect Sync blocker, including disconnected forests after a merger
- The path Microsoft recommends for most organisations, where new sync features are developed first
- Lightweight agents with outbound-only connections, and several active agents for automatic failover
- Configuration lives in the Microsoft Entra admin center, not on a sync server
- Does not support groups over 50,000 members or more than 150,000 objects per domain
- Custom sync rules are limited to the expression builder
- Microsoft lists device synchronisation as a migration blocker, so check it if you use hybrid join
Stay hybrid on Microsoft Entra Connect Sync
Medium effortBest for: Organisations with a confirmed Cloud Sync blocker: very large groups or directories, or complex custom sync rules
- Supports large groups, large domains and complex custom rules
- Can configure pass-through authentication or AD FS from the same tool
- A sync server to patch, monitor and keep running (a sync cycle must run at least once every 7 days)
- Not where Microsoft is developing new sync features
Phased move to cloud-only (Entra join, then source of authority per user)
High effortBest for: Organisations retiring AD over time while some users, apps or devices still depend on it
- Users move one at a time, with a documented rollback for each
- New and reset Windows devices go straight to Entra join through Intune and Autopilot
- Transferred users keep on-premises attributes for remaining resource access
- Needs no on-premises Exchange workloads, no AD FS for those users, and no apps using password-based LDAP bind or Kerberos with a password
- Hybrid joined PCs cannot be converted: each needs a reset to become Entra joined
- Check the current release status of source of authority transfer before production use
Turn off directory sync for the whole tenant
Low effortBest for: Small organisations where nothing authenticates to AD any more and every user can go cloud-only at once
- Converts every synced user and group to cloud-only in one change
- Lets you uninstall the sync client and start retiring domain controllers
- All or nothing: you must wait 72 hours before you can turn sync back on
- Clears on-premises properties such as OnPremisesSamAccountName and OnPremisesUserPrincipalName
If AD will stay for a year or more, run Cloud Sync with password hash sync unless the comparison table shows a blocker, in which case stay on Connect Sync. To leave AD, take the phased route: finish Exchange, Entra join devices as they are replaced or reset, move LDAP and Kerberos apps, then transfer source of authority per user. Turn off sync for the whole tenant only at the end, or if you are small enough that nothing depends on AD today.
Turn on password hash sync before you need itReduces risk
If you use AD FS or pass-through authentication and the on-premises side fails, users cannot sign in to anything in Microsoft 365. Microsoft recommends PHS with every sign-in method because it is the fallback, and failover to it is manual.
Enable Password hash synchronization on the Entra Connect Optional features page now, even if you keep federation for a while, and write the failover steps into your rollback plan.
Clean up AD before you sync more of itReduces risk
Everything in scope ends up in Entra ID: disabled accounts, test users, old service accounts and stale groups. Once there, they clutter licensing, access reviews and Conditional Access scoping.
Use OU filtering in the Entra Connect wizard (Domain and OU filtering) or Cloud Sync scoping so only real users, groups and contacts sync. Disable or delete stale objects in AD first.
Check the Cloud Sync limits before you switchSaves time
Cloud Sync does not support groups over 50,000 members or more than 150,000 objects per domain, and the guided migration tool lists device synchronisation as a blocker. Finding this mid-migration forces a rollback to Connect Sync.
Use the group size output from Step 1 and the object counts per domain. If any limit is hit, or you still hybrid join devices, stay on Connect Sync for now.
Pilot sign-in changes with staged rollout, not a domain flipUser impact
Converting a domain from federated to managed affects every user on it at once and Microsoft says it can take up to 60 minutes. Staged rollout lets a group test cloud sign-in first.
Use cloud security groups (not nested or dynamic), add 200 users or fewer per new group, and remember the 10-group limit per feature. Convert the smallest domain first, out of hours.
Legacy protocols do not follow staged rolloutReduces risk
Microsoft says legacy authentication such as POP3 and SMTP is not supported by staged rollout and falls back to federation. Scanners and line-of-business apps that send mail can break when you finally turn off AD FS.
Check the Entra sign-in logs for legacy authentication clients before converting domains, and move those devices and apps to modern authentication first.
Budget for device resets, not device conversionsCost lever
Microsoft states there is no supported way to convert a hybrid joined device to Entra joined without a Windows reset. A plan that assumes in-place conversion will stall.
Move devices to Entra join at their normal refresh or reset, using Autopilot. Keep hybrid join and line of sight to domain controllers for the rest until then.
Microsoft has no in-place conversion, but these third-party tools re-join a domain joined or hybrid joined Windows PC to Microsoft Entra ID and keep the user's existing profile, so the device does not need a reset. It is not a Microsoft-supported path, so pilot it on each hardware model first.
- Quest On Demand MigrationConverts domain joined or hybrid joined Windows 10 and 11 devices to Entra joined and updates the user profiles during the join.
- ForensiT User Profile WizardMigrates an existing domain profile to the user's Azure AD (Entra ID) account. The Entra join itself is done with a provisioning package.
Finish Exchange before transferring source of authorityReduces risk
Microsoft lists no on-premises Exchange workloads as a prerequisite for user SOA transfer. Mailbox attributes managed by an Exchange server will not be editable the way you expect after the switch.
Complete the mailbox move and plan the last Exchange server first. See the Exchange to Exchange Online guide.
Move SOA per user before turning sync off for the tenantReduces risk
Turning off directory sync is tenant wide, clears on-premises properties and cannot be reversed for 72 hours. Per-user SOA transfer has a documented rollback.
Transfer SOA for pilot users first and leave the tenant-wide switch until every user and app has moved and the sync client is uninstalled.
Service accounts and app dependencies outlive usersReduces risk
The last things holding AD up are usually service accounts, LDAP binds from old apps and printers or scanners using Kerberos. Users can be cloud-only while these still need a domain controller.
Keep the application inventory current and review DC security logs over a full business cycle (including month-end and year-end jobs) before demoting the last DC.
Find attribute errors before the sync engine doesSaves time
Microsoft requires mail, proxyAddresses and userPrincipalName to be unique before you sync. Entra Connect and Cloud Sync do not fix duplicates or bad values: they report errors for the affected objects, which stay out of sync until you fix them in AD.
Scan the in-scope OUs for duplicate and malformed attributes before the first sync and before you widen scope. Fix them in AD, not in the cloud, and rerun the scan until it is clean.
Microsoft's free IdFix tool queries on-premises AD before sync and lists objects with duplicate or badly formatted values in the attributes that sync, so you can fix them in bulk instead of chasing sync errors one by one.
- IdFixMicrosoft says running IdFix makes sure your on-premises Active Directory is ready for directory synchronisation.
How do you check it worked, or roll back?
Full validation checklist9 checks
Run these before you declare the migration complete. Record the results in the data validation report.
| Check | How to check | What good looks like |
|---|---|---|
| Synced object counts match AD | On the admin PC, rerun the Step 1 counts ( | Every in-scope user, group and contact exists in Entra ID; any difference is explained by OU filtering or scoping you chose. |
| Sync is healthy and running on schedule | On the Connect Sync server run | SyncCycleEnabled is True, the delta cycle completes without export errors, and every Cloud Sync agent shows as active. |
| Domains use the sign-in method you intended | In PowerShell 7 connected to Microsoft Graph, run | AuthenticationType shows Managed for every converted domain and Federated only for domains you have not yet moved. |
| Users sign in with cloud authentication, inside and outside the office | Sign in as pilot users in a private browser at https://myapps.microsoft.com, on and off the corporate network. In the Microsoft Entra admin center, filter the sign-in logs by those users and check the result and authentication details. | Sign-ins succeed through the Entra sign-in page with MFA as your policies require, and none are redirected to AD FS. |
| Devices hold a Primary Refresh Token | On a sample of Entra joined and hybrid joined PCs, open Command Prompt and run | AzureAdJoined is YES (and DomainJoined is YES for hybrid devices) and AzureAdPrt is YES. |
| Outlook, Teams and OneDrive keep working after the sign-in change | On a pilot PC and a pilot phone, open Outlook, Teams and OneDrive after the domain conversion and after a restart. Check that OneDrive shows no sign-in prompt in its notification area icon and that mobile apps stay signed in. | Clients stay signed in or prompt once for the Entra sign-in page; mail, chat and file sync continue without errors. |
| On-premises file shares, printers and apps still work | On an Entra joined pilot PC, open a file share by path (for example \\fs01\Shares\Finance), add a network printer, and sign in to each app in the Application inventory and dependency map that uses Kerberos or LDAP. | Shares and printers open with single sign-on, and every app owner signs off their app in the pilot test plan. |
| Source of authority transfers are recorded and editable | For transferred users, run the | isCloudManaged is true, an audit entry exists for each user, and the user can be edited in the Entra admin center. |
| Nothing still authenticates to the domain controllers (before demotion) | On each domain controller, run | No logons appear from users, service accounts or computers other than the domain controllers themselves. |
Rollback planIf it goes wrong
Roll back if
- Pilot or production users cannot sign in after a domain converts to managed, and the cause is not fixed within the change window
- Hybrid joined devices lose their Primary Refresh Token or cannot reach domain controllers
- An application in the dependency map fails for transferred source of authority users and has no quick fix
- Sync export errors or unexpected deletes appear in Entra ID after a sync configuration change
Point of no return
Converting a domain and transferring source of authority per user can both be reversed. Turning off directory sync for the whole tenant is the real point of no return: Microsoft says you must wait 72 hours before you can turn it back on, and it clears on-premises properties such as OnPremisesSamAccountName and OnPremisesUserPrincipalName. Demoting the last domain controller removes the forest; only the system state backup can bring it back.
- 1
Stop further changes
Where: Windows PowerShell run as administrator on the Connect Sync serverPause the scheduler so no more changes export while you assess. Leave it paused only as long as needed: Microsoft says a sync cycle must run at least once every 7 days.
Set-ADSyncScheduler -SyncCycleEnabled $falseYou should see:Get-ADSyncSchedulershows SyncCycleEnabled False. - 2
Move pilot users back to federation
Where: Microsoft Entra admin center (https://entra.microsoft.com) > Entra ID > Entra Connect > Connect sync > Staged rollout of managed user sign-inRemove the affected users or groups from the staged rollout features, or slide the feature to Off. Users then sign in through the federated provider again.
You should see: Affected users are redirected to the AD FS or third-party sign-in page. - 3
Federate a converted domain again
Where: PowerShell 7 on your admin PC, connected with Connect-MgGraph using Domain.ReadWrite.AllRecreate the federation with
New-MgDomainFederationConfigurationusing the settings you saved withGet-MgDomainFederationConfigurationin the auth step. This only works while the AD FS farm still exists. Allow up to 60 minutes for the change.You should see:Get-MgDomain -DomainId contoso.comshows AuthenticationType Federated and users sign in through AD FS. - 4
Return a user to AD as source of authority
Where: PowerShell 7 with Microsoft Graph, then Windows PowerShell on the Connect Sync serverFollow the documented rollback on Microsoft Learn: Configure user Source of Authority. Remove the user from SOA-transferred groups and access packages, set
isCloudManagedto false with the PATCH request, then runStart-ADSyncSyncCycle -PolicyType Delta. Handle the blockCloudObjectTakeoverThroughHardMatchEnabled flag as that page describes.You should see: After the next sync, the user shows Windows Server AD DS as the source and cloud fields are read-only again. - 5
Restart sync and confirm
Where: Windows PowerShell run as administrator on the Connect Sync serverTurn the scheduler back on with
Set-ADSyncScheduler -SyncCycleEnabled $trueand run a delta cycle.You should see: The cycle completes with no export errors and object counts match the validation baseline. - 6
If sync was turned off for the tenant
Where: PowerShell 7 on your admin PC, signed in as a Hybrid Identity AdministratorWait the 72 hours Microsoft requires, reinstall Connect Sync or Cloud Sync, then set
onPremisesSyncEnabledback to true withUpdate-MgOrganizationand run a full sync. Check the Synchronization Service Manager for duplicate or unmatched objects before users rely on it.You should see:Get-MgOrganization | Select OnPremisesSyncEnabledshows True and synced users show AD as the source. - 7
Accept what cannot be undone
Where: Your Rollback plan and Decommission checklistRecord that a demoted last domain controller or a deleted forest can only come back from the system state backup taken with
wbadmin, and that a PC reset to Entra join has to be joined to the domain again to return to hybrid join.You should see: The change record lists each irreversible step and who approved it.
Agree the triggers and who decides before the go / no-go meeting. Use the rollback plan template.
Common problems and fixes6 errors
Hybrid joined laptop cannot sign in away from the officeCause: Hybrid joined devices need periodic line of sight to a domain controller.
Fix: Provide VPN or line of sight, or move the device to Entra join after a reset.
Users cannot sign in after an AD FS outageCause: Federation depends on on-premises AD FS and failover to PHS is manual.
Fix: Enable PHS now so you can switch the sign-in method in Entra Connect during an outage.
SOA transfer fails or user still read-only in the cloudCause: Sync client below the minimum version, missing Graph permission, or the user has on-premises Exchange or AD FS dependencies.
Fix: Upgrade Connect Sync to 2.5.76.0 or later (or the Cloud Sync agent to 1.1.1370.0 or later), consent to User-OnPremisesSyncBehavior.ReadWrite.All, and clear the prerequisites.
Cannot re-enable directory sync after turning it offCause: Microsoft requires a 72-hour wait after turning sync off.
Fix: Wait 72 hours, then re-enable. Plan the turn-off as a one-way change.
Cloud Sync migration tool reports a blockerCause: Device synchronisation for hybrid join is listed as a migration blocker in the guided tool.
Fix: Keep Connect Sync for device sync until devices are Entra joined, or review the tool's requirements.
Objects not syncing after configuration changesCause: The Connect Sync scheduler was left disabled.
Fix: Run Set-ADSyncScheduler -SyncCycleEnabled $true and start a delta sync.
Frequently asked questions
Should I use Entra Connect Sync or Cloud Sync?
Microsoft calls Cloud Sync the recommended path forward for most organisations. Stay on Connect Sync if you need features it lacks, such as very large groups or complex sync rules.
Which sign-in method should I use?
Password hash sync is the simplest. Microsoft recommends enabling it whichever method you use, because it backs up PTA and federation and powers leaked credential detection.
Can I convert hybrid joined PCs to Entra joined?
Not in place. Microsoft says a Windows reset is required.
How do I make synced users cloud-only?
Either transfer user source of authority per user through Microsoft Graph, or turn off directory sync for the whole tenant.
Do I need Entra ID P1 or P2?
Microsoft lists Entra Free for user SOA. Features such as Entra ID Protection need P2. Check Microsoft's current licensing pages.
Do Entra joined devices still reach file shares?
Microsoft says Entra joined devices can access on-premises resources with single sign-on. Pilot it before rolling out.
Official sources
12 official pages this guide is based on
Vendors change limits and features, so confirm details on the source before you rely on them. Last checked 4 Nov 2026.