The File Server Migration Nightmare
Migrating a 10-Terabyte Windows File Server is one of the most stressful tasks an IT administrator can undertake. You cannot simply drag and drop the files using File Explorer. If you do, you will destroy thousands of complex NTFS security permissions, break every mapped network drive in the company, and ruin all the SMB file shares. Historically, administrators had to use complex command-line tools like Robocopy, constantly monitoring the sync for days, and then meticulously recreating the file shares on the new server manually.
Microsoft revolutionized this with the Storage Migration Service (SMS). SMS is an orchestration engine built into modern versions of Windows Server (2019/2022). It automates the entire process: it inventories the old server, performs a block-level transfer of the files (preserving every single NTFS ACL and share permission), and finally, performs a “Cutover” where the new server magically steals the old server’s IP address and hostname. To the end-users, the migration is completely invisible; their mapped drives never break.
While this can be managed via the Windows Admin Center GUI, orchestrating massive multi-server migrations requires PowerShell.
Step 1: Installing the Orchestrator Role
You must designate a server to act as the “Orchestrator.” This server acts as the brain; it doesn’t hold the files, it just manages the transfer between the Source (the old server) and the Destination (the new server).
Open an elevated PowerShell session on your Orchestrator server and install the SMS role:
Install-WindowsFeature -Name SMS -IncludeManagementTools
Step 2: Creating the Migration Job
You must initialize a new migration job inside the SMS database.
New-SmsJob -Name "Migrate_Finance_Server" -Type ServerMigration
Step 3: Inventorying the Source Server
You must instruct the Orchestrator to scan the old Windows 2012 R2 server (e.g., OLD-FS01) to map out all its hard drives, file shares, and network configurations.
# Add the source server to the job
Add-SmsServer -JobName "Migrate_Finance_Server" -ServerName "OLD-FS01" -Role Source
# Trigger the inventory scan
Start-SmsInventory -JobName "Migrate_Finance_Server" -ServerName "OLD-FS01"
Wait for the inventory to complete. The orchestrator now knows exactly how much data needs to be moved.
Step 4: Defining the Destination and Transferring Data
Now, link the brand new Windows Server 2022 machine (e.g., NEW-FS02) to the job and begin the data copy.
# Add the destination server
Add-SmsServer -JobName "Migrate_Finance_Server" -ServerName "NEW-FS02" -Role Destination
# Map the source drive (D:) to the destination drive (E:)
Set-SmsVolumeMapping -JobName "Migrate_Finance_Server" -SourceServer "OLD-FS01" -SourceVolume "D:" -DestinationServer "NEW-FS02" -DestinationVolume "E:"
# Start the initial data transfer
Start-SmsTransfer -JobName "Migrate_Finance_Server"
SMS will now silently copy the 10TB of data in the background without disrupting users on the old server.
Step 5: The Cutover (The Magic Trick)
Once the initial transfer is 100% complete, you schedule the Cutover. This is typically done at 2:00 AM on a Sunday.
During the Cutover, SMS will pause the old server, perform a final delta-sync of any files modified in the last 24 hours, and then execute the identity swap.
Start-SmsCutover -JobName "Migrate_Finance_Server"
What happens during Cutover?
- The Orchestrator forces
OLD-FS01to change its IP address to a random DHCP address and renames its hostname toOLD-FS01-ARCHIVE. - The Orchestrator reboots
OLD-FS01. - The Orchestrator injects the old IP address and the hostname
OLD-FS01into the brand newNEW-FS02server. - The Orchestrator reboots the new server.
When employees arrive on Monday morning, their computers still connect to \\OLD-FS01, completely unaware that they are actually communicating with a brand new Windows Server 2022 machine running on ultra-fast NVMe storage. The migration is flawless and entirely automated.