Restore: Side-by-Side Migration

The user continues working on the old machine while the new machine is being prepared. Application profiles are synchronized until a defined cutover date, when the user switches to the new machine permanently.


Migration Timeline

PhaseOld MachineNew Machine
PreparationRegular export jobs running (see Split Jobs)Base image deployed, software installed, domain joined
Initial restoreMachine import + user import from latest backup
Sync periodUser works normally. Export jobs continue daily.Available for testing. No imports during this phase.
Final syncUser logs off. Final export runs manually or on demand.Final import from latest backup (machine + user)
CutoverMachine decommissioned or reassignedUser works exclusively on new machine

Initial Restore

Follow the same procedure as Restore: Fresh Client Build — machine import first, then user import after first logon.

This gives the user an early preview of the new machine with their settings. Any issues can be identified during the sync period before the final cutover.

Final Sync

On cutover day, the old machine's latest backup is imported one final time to capture any changes the user made since the initial restore.

Step 1 — Trigger a final export on the old machine:

:: Run on the old machine (manually or via remote command)
AppProfileSafe.CLI.exe --export ^
  --manifestFile "\\server\backups\OLD-PC042\Machine\Manifest.xml" ^
  --apps "Firefox-Machine,Office-Machine" ^
  --unc-credential-store --silentMode

AppProfileSafe.CLI.exe --export ^
  --manifestFile "\\server\backups\OLD-PC042\jdoe\Manifest.xml" ^
  --apps "Firefox-User,Office-User,Chrome-User" ^
  --unc-credential-store --silentMode

Step 2 — Import on the new machine:

:: Run by admin on the new machine
:: Phase 1: Machine settings
AppProfileSafe.CLI.exe --import ^
  --manifestFile "\\server\backups\OLD-PC042\Machine\Manifest.xml" ^
  --apps "Firefox-Machine,Office-Machine" ^
  --mappingFile "\\server\mappings\migration.xml" ^
  --unc-credential-store --silentMode --ignoreRestorePointLimit

:: Phase 2: User settings — user should close all applications first
AppProfileSafe.CLI.exe --import ^
  --manifestFile "\\server\backups\OLD-PC042\jdoe\Manifest.xml" ^
  --apps "Firefox-User,Office-User,Chrome-User" ^
  --mappingFile "\\server\mappings\migration.xml" ^
  --unc-credential-store --silentMode --ignoreRestorePointLimit

Important: For the final user import, ask the user to close all affected applications first. Unlike the initial restore (where apps haven't run yet), the final sync overwrites files that may be locked by running applications.

Mapping File

During side-by-side migration, the old and new machines typically have different hostnames and potentially different usernames. Create a mapping file that translates:

From (old machine)To (new machine)
C:\Users\OldUserC:\Users\NewUser
HKCU\...\OldUserHKCU\...\NewUser
D:\AppsC:\Apps

If usernames and drive letters are identical, no mapping file is needed.

Handling Conflicts During Sync Period

If the user works on both machines during the sync period, application settings may diverge. The final import always overwrites the target — there is no merge. Whichever machine has the last export "wins."

Recommendation: During the sync period, the user should primarily work on the old machine. The new machine should be used only for testing and verification. This avoids divergent settings that are lost during the final sync.

See Also