US English (US)
GB English (UK)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Create ticket
English (US)
US English (US)
GB English (UK)
  • Home
  • Migration Agent

How-To Bulk Migrate Workgroup Joined Endpoints to AD / Entra

Migrate a large number of workgroup joined endpoints by leveraging an RMM or other remote management solution.

Written by Jamie Richard

Updated at January 21st, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Getting Started
  • FAQs
  • API Documentation
  • Integrations
  • Migration Agent
  • Directory Synchronisation
  • Remote DC agent
  • Remote Password Sync Agent
  • Install and Configure
  • Support
  • Complex Expressions
+ More

Table of Contents

Use Case Limitations Prerequisites For Migrations Targeting Entra For Migrations Targeting AD AD connectivity during migration Setup Steps Create the Migration CSV Populate User Identity (SID or GUID) For Entra For AD Populate the Dummy AD Environment Source / Target Domains in AD Migrations Requirements Create the dummy AD objects Licensing Reminder Build Runbooks and Batches Create the Runbook For Migrations Targeting Entra For Migrations Targeting Active Directory Get Runbook GUID Create a Batch Customize the Deployment Script Update: RMM Deployment Instructions

This guide walks you through bulk migrating workgroup-joined Windows devices into an AD or Entra Joined state using PowerSyncPro.
 

Migration Scripts: https://github.com/PowerSyncPro/MigrationAgent/tree/main/BulkWorkgroup

It is designed for environments where:

  • Devices are not joined to an Active Directory domain or Microsoft 365 Entra
  • You have remote management of machines (RMM, etc)
  • You need to preserve the user’s local profile

Use Case

You have standalone Windows machines (workgroup only) and need to migrate them to AD or Entra Joined without requiring reimaging, Autopilot, or user-profile disruptions.

Limitations

  • Only one local profile per device can be migrated.
    • If multiple local profiles exist, you must designate which one to migrate.
  • Additional users may sign in post-migration, but their prior local profiles will not be automatically migrated.
  • Workstations must be licensed with Windows 10 / 11 Professional or higher.
    • Windows Home versions do not support AD or Entra join.
    • Verify this using your RMM / Management tools before attempting a migration.

Prerequisites

For Migrations Targeting Entra

Server / Infrastructure:

  • A PowerSyncPro Server Installation accessible to migrating workstations.
  • An Active Directory server capable of holding computer objects (dummy domain)
    • This can be on the PowerSyncPro Server itself if necessary.
    • Must be added to PowerSyncPro as a source directory.
    • No communication between the migrating workstations and the dummy domain is required.
    • Can be a production domain if available
      • Example, you are migrating a variety of AD and Workgroup joined machines to Entra, you can use the client's existing AD.
  • An Entra Tenant connected to PowerSyncPro
    • Application Registration
      • https://kb.powersyncpro.com/install-and-configure/create-powersyncpro-entraid-application
    • Bulk Enrollment Token
  • Relevant PowerSyncPro licensing including:
    • The dummy AD domain as the source (e.g. dummy.local)
    • Your Entra tenant as the target (e.g. company.onmicrosoft.com)
  • A runbook and batch for this migration.
    • You will need the GUID for the particular runbook you want to run.
  • The PSP Migration Agent Installer (with .NET):
    • PSPMigrationAgentInstaller.msi
  • The support scripts from GitHub: https://github.com/PowerSyncPro/MigrationAgent/tree/main/BulkWorkgroup
  • Ability to push scripts/files to machines via RMM or remote tooling. This process has been tested with the following solutions, but it will likely work with any RMM solution capable of delivering a PowerShell script and supporting files (.csv / .msi) to endpoints and execute the script as Admin or System.
    • Tested with multiple RMM / Deployment Solutions
      • Kaseya VSA
      • Connectwise Automate
      • Automox

Endpoint / User Information:

  • Hostname of the target device
    • Can be obtained via RMM or remote management tools
  • Local username of the account being migrated
    • Can be obtained via RMM or remote management tools
  • User’s Entra UPN (email address) in the target domain.
  • Confirmation that endpoints are running a Professional (or higher) version of Windows 10 /11.  Home versions cannot join Entra.
 
 

For Migrations Targeting AD

Server / Infrastructure:

  • A PowerSyncPro Server Installation accessible to migrating workstations.
  • An Active Directory server capable of holding computer objects (dummy domain) 
    • This can be on the PowerSyncPro Server itself if necessary.
    • Must be added to PowerSyncPro as a source directory.
    • No communication between the migrating workstations and the dummy domain is required.
  • A connection to the target Active Directory from PowerSyncPro
  • Relevant PowerSyncPro licensing including:
    • The source AD (dummy domain)
      • The AD holding the computer objects with the same name as the Workgroup computers
    • The target AD
      • The AD you are migrating to.
    • You can request a license with the same source / target if you are using your Target domain to hold your computer objects.
  • A runbook and batch for this migration.
    • You will need the GUID for the particular runbook you want to run.
  • The PSP Migration Agent Installer (with .NET):
    • PSPMigrationAgentInstaller.msi
  • The support scripts from GitHub: https://github.com/PowerSyncPro/MigrationAgent/tree/main/BulkWorkgroup
  • Ability to push scripts/files to machines via RMM or remote tooling. This process has been tested with the following solutions, but it will likely work with any RMM solution capable of delivering a PowerShell script and supporting files (.csv / .msi) to endpoints and execute the script as Admin or System.
    • Tested with multiple RMM / Deployment Solutions
      • Kaseya VSA
      • Connectwise Automate
      • Automox

 

AD connectivity during migration

Endpoints migrating from Workgroup to AD must have direct connectivity to the target domain controllers during the migration.  Offline Domain Join is not supported when migrating Workgroup endpoints to AD.

 

 

Endpoint / User Information:

  • Hostname of the target device
    • Can be obtained via RMM or remote management tools
  • Local username of the account being migrated
    • Can be obtained via RMM or remote management tools
  • User’s AD UPN in the target domain.
  • Confirmation that endpoints are running a Professional (or higher) version of Windows 10 /11.  Home versions cannot join AD.
 
 

 

Setup Steps

Create the Migration CSV

Create a file named mig_db.csv containing these headers:

computer_name,local_username,target_upn,target_identity

Field definitions:

Field Description
computer_name Workstation hostname (e.g., CLIENT-WRK001)
local_username Local account name (e.g., John)
target_upn Entra or AD UPN/email (e.g., john.smith@company.com)
target_identity Leave blank — will be auto-populated by PowerShell Script (SID or Entra GUID)

You may use the blank CSV provided in the repository.

Populate this CSV with the machines and local username combinations you wish to migrate.  When the script runs it will check if its running on a machine listed in this CSV.  If it is, it will check if the specified local user exists.  If everything appears correct, it uses this information to build the translation table.

 

Populate User Identity (SID or GUID)

For Entra

On a machine with Microsoft Graph Powershell installed, Run:

.\1-Lookup_User_GUID_or_SID.ps1 -CsvPath .\mig_db.csv -TargetType Entra

You will authenticate against the target Entra tenant. The script resolves each UPN to its Entra Object ID and writes the value into target_identity in the CSV.

This can also be manually populated from the Entra Portal if you do not want to use the script.

For AD

On a machine with a connection to the Target Active Directory, Run:

.\1-Lookup_User_GUID_or_SID.ps1 -CsvPath .\mig_db.csv -TargetType AD

The script will lookup the UPNs listed in the CSV in Active Directory and write the current SID to the CSV under target_identity. This will be used by the migration script to build a translation table for the local user to the domain user.

This can be manually populated from Active Directory Users and Computers, it is shown under objectSID in the Attribute Editor.

Populate the Dummy AD Environment

PowerSyncPro requires each device to exist in a source directory. Since these machines are workgroup-joined, you must create dummy computer objects inside an AD domain.

You may use:

  • A existing AD domain, or
  • A dedicated dummy domain (recommended)
    • The PowerSyncPro server can be promoted to a domain controller and used as a dummy domain if necessary.

Source / Target Domains in AD Migrations

If your target is an Active Directory, you need to have a separate dummy domain from the target environment.  This can be the PowerSyncPro server or a separate server promoted to domain controller.

 

No communication between the migrating workstations and the dummy domain is required.  It solely acts as a place to store computer objects so that PowerSyncPro can import them into its database.

Requirements

  • Promote the PSP server to a domain controller (if using a dedicated dummy domain).
  • Add the dummy domain as a Source Directory in PowerSyncPro.
  • Ensure that the schedule is setup within PowerSyncPro (Sync Service -→ Schedule)
  • Create a Match Only sync profile between the dummy domain and target directory (Entra or AD).
  • Only computer objects matter for this process.
  • No matching rules are required, this is solely to ensure that PowerSyncPro syncs computer objects from the source / dummy domain into its database.
Basic Match Only Sync Profile (Scope Tab)
Basic Match Only Sync Profile (Match Tab)

Create the dummy AD objects

On the source domain controller, run:

.\2-Create_Dummy_AD_Objects.ps1 -CsvPath .\mig_db.csv

or

.\2-Create_Dummy_AD_Objects.ps1 -CsvPath .\mig_db.csv -TargetOU "OU=PSP Computers,DC=pspdummy,DC=local" 
  • CsvPath is the path to the CSV File
  • TargetOU is the distinguished name of the OU where the computer objects will be created.
    • TargetOU is optional, by default objects will be created in the default “Computers” container.

Notes:

  • The script creates AD computer objects matching the computer_name values.
  • After creation, run a PSP sync to import these objects.
    • Sync Service Tab -→ Schedule -→ Run Now

After the objects are created and the sync has run, you can confirm they exist using the “Single Object Report”.

Single Object Report for Dummy Active Directory

Licensing Reminder

Your PSP license must include:

  • Source: dummy domain (dummy.local)
  • Target:
    • Your Entra tenant (company.onmicrosoft.com) or
    • Your Target AD Domain (domain.company.com)

 

Build Runbooks and Batches

Create the Runbook

Create a new runbook for this migration and obtain the GUID of the runbook.

For Migrations Targeting Entra

  • Migration Agent Tab → Runbooks → Create
    • Source Directory: Dummy Domain
    • Target Directory: Entra
  • Startup Tab:
    • Ensure you setup a Fallback Username / Password (Breakglass Account)
    • Enable Prevent Login
  • User Experience Tab:
    • Customize as needed, can be left as default.
  • Device State Tab:
    • Remove From: All Directories
    • Domain Join: Entra ID
    • Enroll to Intune if Necessary
  • Permission Updates Tab:
    • Leave as Default
  • App Reconfiguration Tab:
    • Can likely be left as default.  If the workgroup joined machines are currently using the same Entra / M365 tenant as the target, no reconfiguration is needed.
  • Completion Tab:
    • Can be left as default
Startup Tab
Device State Tab
 
 

For Migrations Targeting Active Directory

  • Migration Agent Tab → Runbooks → Create
    • Source Directory: Dummy Domain
    • Target Directory: Target AD
  • Startup Tab:
    • Ensure you setup a Fallback Username / Password (Breakglass Account)
    • Enable Prevent Login
  • User Experience Tab:
    • Customize as needed, can be left as default.
  • Device State Tab:
    • Remove From: All Directories
    • Domain Join: Active Directory
    • Set an OU for Computers to be created in the target domain.
    • Enter an account with domain join permissions to join the machine to the domain.
    • Note: Offline Domain Join is not supported in this scenario.  Migrating workstations must have line-of-sight communication (e.g. on the corporate network) to target domain controllers for the duration of the migration.
  • Permission Updates Tab:
    • Leave as Default
  • App Reconfiguration Tab:
    • Can likely be left as default.  If the workgroup joined machines are currently using the same Entra / M365 tenant as the target, no reconfiguration is needed.
  • Completion Tab:
    • Can be left as default
 
 

Get Runbook GUID

You will need the GUID of the runbook that you just created.  This will be included in the script deployed to workstations.  This can be obtained directly from the SQL database or via Developer Mode in your browser.

  • In a Chromium based browser (e.g. Chrome, Edge, Brave, Opera, etc) open the Runbooks page in PowerSyncPro.
  • Press F12 to open Developer Mode (or Ctrl + Shift + I)
  • Click the “Network” tab in Developer Mode
  • Click the “Edit” button on your selected runbook.
  • You will see a request for “EditModal” with your runbook ID as a parameter.
    • Ex: https://psp1.company.com/migrationAgent/Runbooks/EditModal?runbookId=df0a0278-9d4a-4c96-32dc-08de15914463
  • You can right-click on the request and say Copy URL.
  • The runbook ID is the GUID included after the “=” sign in the URL.
    • Ex: df0a0278-9d4a-4c96-32dc-08de15914463
  • Save this runbook ID to your notes, you will need it to edit the script below.

Create a Batch

  • Migration Agent Tab -→ Batches -→ Create
  • Source Directory: Dummy Domain
  • Target Directory: Target Directory (Entra or AD)
  • Runbooks: Assign the runbook created above.
    • Available From: Time that you want users to be alerted of a migration being available after the script runs.  If you want it to prompt immediately, make it now, or in the past.
    • Enforced After: When you want the migration to be completed by.  Users will be forced to migrate at this time.
    • Timezone: Local, unless UTC is required.
  • Computer Tab:
    • If your computer objects are already added to the dummy domain, you should be able to add them here.
    • If you want to migrate all computers, you can select “All computers except the following”, this will apply this batch to all computers in the dummy active directory.
Batch Setup - Runbooks Tab
Batch Setup - Computers Tab

 

Customize the Deployment Script

You must edit WorkgroupMigrator.ps1 downloaded from the GitHub before deploying it to your endpoints via RMM or other remote management tooling.

Update:

  • $basePath
    • Directory where RMM will place the CSV and MSI (e.g. C:\Temp).
  • $csvName
    • Name of the CSV created earlier (e.g. mig_db.csv).
  • $domainName
    • Dummy domain FQDN (e.g. dummy.local).
  • $RunbookGUIDs
    • GUID(s) of the PSP runbook to execute for migration.  You obtained this above.
  • $PspMsiName
    • Filename of the PSP Migration Agent MSI you downloaded.
  • $PSPServerUrl
    • Your PSP server’s Agent endpoint URL (e.g., https://psp1.company.com/Agent).
  • $PspPsk
    • Migration Agent PSK for your server.

After updating, you will need to package the following files for deployment via your RMM or other remote tooling:

  • The customized PowerShell script
  • The CSV file
  • The PSP Migration Agent MSI

 

RMM Deployment Instructions

Your RMM should:

  • Copy the CSV, MSI, and PowerShell Script into the directory defined by $basePath.
  • Execute WorkgroupMigrator.ps1 as Administrator or SYSTEM.

The script will:

  • Load the CSV
  • Confirm that it is running on a hostname contained within the CSV
  • Install and register the PSP Migration Agent
  • Build the required translation table
  • Prepare the device for PSP-managed migration.

If the device is already part of an active batch, it will prompt for migration immediately.
Otherwise, it will wait for standard PSP batch scheduling.

The script logs to C:\Temp\Migration_Kickoff_Log.log

transfer deploy

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Workgroup workstation migration process
  • PowerSyncPro Migration Agent - Installation Methods
  • Add Users as Local Administrators to Entra Joined Devices

Subscribe to Newsletter

Drop your email in the box below to sign up. We promise to keep our updates relevant and useful – and we’ll never share your details.

PowerSyncPro is the ultimate product for easing the pain and frustration during mergers, acquisitions, divestitures, and consolidations.

Terms & Conditions

  • FAQs
  • Privacy Policy
  • Cookies
  • Anti Slavery Notice

PowerSyncPro

  • Case Studies
  • Contact sales
  • Meet the Team
  • EULA

Get Connected

Room 73, Wrest House, Wrest Park, Silsoe, Bedford, England, MK45 4HR
info@powersyncpro.com

Twitter Youtube Linkedin

Knowledge Base Software powered by Helpjuice

Expand