← Deployment models

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?

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 inBackground mode
How you get itInstall with Only for me (no admin), or the MSI before Background mode is turned onSettings → Background mode (asks for admin once). On automatically for Anyone using this computer installs
Runs asYou, the signed-in Windows userA Windows service
App window closedKeeps runningKeeps running
Screen lockedKeeps runningKeeps running
Sign out of WindowsStopsKeeps running
Nobody signed inNot runningKeeps running
After a restartStarts again when you sign in to WindowsCarries on without anyone signing in
File shares are read byYour Windows accountThe PC's computer account (DOMAIN\PCNAME$)
Devices page showsRuns while signed inBackground mode
Good forLaptops and workstations, migrations during the workdayFile 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.

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.

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

CmdletWhat it does
Connect-MigrationFoxConnects with this PC's Desktop sign-in (or -Token)
Disconnect-MigrationFoxForgets the connection in this PowerShell session. Desktop stays signed in
Get-MFConnectionLists saved source and destination connections
Get-MFProjectLists projects
Start-MFMigrationStarts one migration (supports -WhatIf)
Get-MFMigrationLists migrations (-Status, -Last) or gets them by -Id
Wait-MFMigrationWaits for migrations to finish, with a progress bar
Stop-MFMigrationCancels migrations
Suspend-MFMigrationPauses running migrations
Resume-MFMigrationResumes paused or failed migrations, or retries failed files (-RetryFailed)
Get-MFMigrationItemPer-file results (-Status Failed, Skipped, and so on)
Import-MFMigrationPlanStarts 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

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.

Related reading

Start a migration from your own PC

Installs without admin rights. 2 GB free. No credit card required.