GUIDE · MIGRATIONFOX DESKTOP 0.5.0 · October 23, 2026
Run migrations from your PC or server
Some migrations can't run from the cloud. A file share behind the firewall, a folder on a local disk, or a security policy that says file content stays on your network all mean the work has to happen on a Windows machine you control. MigrationFox Desktop is that machine's half of the job: you plan and watch migrations from the dashboard, and the PC (or server) reads the files and sends them to the destination.
This guide covers the two things that decide how that goes in practice: who installs it, and whether it keeps running when nobody is signed in. It also shows how to drive the whole thing from PowerShell.
Install it without admin rights
The Windows installer asks one question: who is this for?
- Only for me. No admin rights needed. MigrationFox installs to your user profile (AppData) and runs as you, the signed-in Windows user. This is the right choice on a managed laptop where you can't elevate, or when you just want to get a migration started today without a ticket to IT.
- Anyone using this computer. Needs admin rights. MigrationFox installs to Program Files for every user on the PC, and Background mode (below) is turned on automatically.
With Only for me, MigrationFox keeps running with the app window closed and with the screen locked. It starts again when you sign in to Windows, and it stops when you sign out of Windows. For a migration that runs during the workday, or a long one you start before locking your screen and going home, that is usually all you need.
IT teams deploying to many machines can use the MSI. It installs for everyone on the PC but does not turn Background mode on; turn it on per machine in Settings when you want it.
Download MigrationFox Desktop for Windows. The installer is code-signed.
Background mode: keep running with nobody signed in
File servers and overnight runs have a different problem: there is often nobody signed in at all, and the machine may restart for updates halfway through. Turning on Background mode (Settings → Background mode) makes MigrationFox run as a Windows service. It asks for admin rights once, when you turn it on. After that, migrations keep running with nobody signed in and carry on after restarts. There are no scripts, scheduled tasks or saved passwords to set up.
Runs while signed in vs Background mode
| Runs while signed in | Background mode | |
|---|---|---|
| How you get it | Install with Only for me (no admin), or the MSI before Background mode is turned on | Settings → Background mode (asks for admin once). On automatically for Anyone using this computer installs |
| Runs as | You, the signed-in Windows user | A Windows service |
| App window closed | Keeps running | Keeps running |
| Screen locked | Keeps running | Keeps running |
| Sign out of Windows | Stops | Keeps running |
| Nobody signed in | Not running | Keeps running |
| After a restart | Starts again when you sign in to Windows | Carries on without anyone signing in |
| File shares are read by | Your Windows account | The PC's computer account (DOMAIN\PCNAME$) |
| Devices page shows | Runs while signed in | Background mode |
| Good for | Laptops and workstations, migrations during the workday | File servers, jump hosts, overnight and weekend runs |
File share access: which account reads your files
MigrationFox reads a file share as whichever Windows account it is running as, so permissions work the way you already expect.
- Runs while signed in: shares are read with your own Windows account. A simple test: if you can open the folder in File Explorer, MigrationFox can read it.
- Background mode: shares are read by the PC's computer account,
DOMAIN\PCNAME$. Give that computer account read access to the shares (or the folders) you want to migrate. If a share opens fine for you but files fail in Background mode, this is the first thing to check.
One app for laptops and servers
There is no separate server agent anymore. The same MigrationFox Desktop app covers a consultant's laptop and a file server in the data center; the difference is only whether Background mode is on.
- Every PC shows on the dashboard's Devices page, labeled Runs while signed in or Background mode, so you can see at a glance which machines will keep going overnight.
- A server without a browser can still sign in: create a token on the Devices page, then choose Paste a token instead on the Desktop sign-in screen.
Automate it with PowerShell
The MigrationFox PowerShell module is installed with Desktop. It uses the PC's Desktop sign-in, so your scripts never contain passwords or tokens. It works on Windows PowerShell 5.1 and PowerShell 7+.
Import-Module MigrationFox
Connect-MigrationFox
Start-MFMigration -SourcePath '\\fileserver\Departments\HR' `
-DestinationSiteUrl 'https://contoso.sharepoint.com/sites/HR' `
-DestinationLibrary 'Documents' -DestinationFolder 'File share/HR' |
Wait-MFMigration
A file share or local folder always runs on this PC. The library is looked up on the site (Documents and Shared Documents both match the default library), and missing folders are created first. If you have more than one SharePoint connection, name the one to use with -DestinationConnection (list them with Get-MFConnection -Platform SHAREPOINT). Add -WhatIf to check everything without starting anything.
Many folders at once: a CSV plan
For a file server with dozens of department folders, put one migration per row in a CSV:
SourcePath,DestinationSiteUrl,DestinationLibrary,DestinationFolder,Name
\\fileserver\Departments\HR\Policies,https://contoso.sharepoint.com/sites/HR,Documents,,HR policies
\\fileserver\Departments\HR\Onboarding,https://contoso.sharepoint.com/sites/HR,Documents,New Hires/Onboarding,HR onboarding
\\fileserver\Departments\Finance,https://contoso.sharepoint.com/sites/Finance,Finance Archive,File share,Finance archive
SourcePath and DestinationSiteUrl are required. DestinationLibrary defaults to Documents. A blank DestinationFolder becomes the folder's path under -SourceRoot (so HR\Policies lands in HR/Policies). Check every row first, then run it:
Import-MFMigrationPlan -Path C:\Migration\FileShare-SharePoint.csv -SourceRoot '\\fileserver\Departments' -WhatIf
Import-MFMigrationPlan -Path C:\Migration\FileShare-SharePoint.csv -SourceRoot '\\fileserver\Departments' `
-Wait -LogPath C:\Migration\Logs\run.csv
-WhatIf checks the connection, site, library, folders and where each row runs without starting anything. With -Wait, rows run one after another and each result (Success, CompletedWithErrors or Failed, with file counts) is appended to the log as it finishes. Without -Wait, every row starts at once.
Find and retry failed files
# Per-file failures for one migration, as a CSV
Get-MFMigrationItem -Id cm3x1example0001 -Status Failed | Export-Csv .\failed-files.csv -NoTypeInformation
# Retry the failed files in every completed migration that had any
Get-MFMigration -Status Completed | Where-Object FilesFailed -gt 0 |
Resume-MFMigration -RetryFailed -PassThru | Wait-MFMigration
The cmdlets
| Cmdlet | What it does |
|---|---|
Connect-MigrationFox | Connects with this PC's Desktop sign-in (or -Token) |
Disconnect-MigrationFox | Forgets the connection in this PowerShell session. Desktop stays signed in |
Get-MFConnection | Lists saved source and destination connections |
Get-MFProject | Lists projects |
Start-MFMigration | Starts one migration (supports -WhatIf) |
Get-MFMigration | Lists migrations (-Status, -Last) or gets them by -Id |
Wait-MFMigration | Waits for migrations to finish, with a progress bar |
Stop-MFMigration | Cancels migrations |
Suspend-MFMigration | Pauses running migrations |
Resume-MFMigration | Resumes paused or failed migrations, or retries failed files (-RetryFailed) |
Get-MFMigrationItem | Per-file results (-Status Failed, Skipped, and so on) |
Import-MFMigrationPlan | Starts one migration per CSV row, optionally waits, writes a results log |
Every cmdlet has built-in help, for example Get-Help Start-MFMigration -Full.
What to know before you script a file share migration
- Re-runs from a file share: "only newer" incremental re-runs aren't available from a file share yet. Re-run with the default
-Conflict Skipto copy only files that aren't in the destination yet, or-Conflict Overwriteto replace everything that already exists. - Authors: original file share authors aren't kept. In SharePoint, Created By and Modified By show the account (or app) that the SharePoint connection signs in with. Created and modified dates are kept (
-PreserveTimestampsis on by default).
FAQ
Do I need admin rights to install MigrationFox Desktop?
No. Choose Only for me in the installer. Admin rights are only needed for an Anyone using this computer install, or once, when you turn on Background mode.
Will my migration stop if I close the app or lock my screen?
No. It keeps running with the window closed and the screen locked. It stops when you sign out of Windows and starts again when you sign back in. If it needs to keep going with nobody signed in, turn on Background mode.
Is there a separate agent for servers?
No. Install the same MigrationFox Desktop app on the server and turn on Background mode. If the server has no browser, sign in with a token from the Devices page using Paste a token instead.
Files fail in Background mode but open fine for me. Why?
In Background mode, shares are read by the PC's computer account (DOMAIN\PCNAME$), not by you. Give that computer account read access to the share.
Can I schedule migrations or run them from my own scripts?
Yes. The PowerShell module is installed with Desktop and uses the PC's Desktop sign-in, so scripts don't hold passwords. Use Start-MFMigration for one folder or Import-MFMigrationPlan for a CSV of many.