Robocopy migration cutover checklist and evidence pack
Operator checklist and evidence structure for file migration cutovers using Robocopy. Covers pre-copy checks, dry-run evidence, final sync readiness, exclusion review, validation samples, rollback details, and signoff artifacts suitable for tickets and change records.
Good For
- Large SMB file share migrations
- Department or project share cutovers
- Weekend or after-hours storage migrations
- Generating repeatable evidence for CAB, change tickets, and signoff
How to Use It
- 1. Define scope and freeze assumptions: Record source and target UNC paths, owning team, business service, migration window, and operator contacts. List included folders, explicit exclusions, expected open-file behavior, and whether security descriptors, owner, and audit ACLs must be preserved. Record target share permissions and NTFS inheritance expectations before cutover. Capture rollback trigger conditions such as failed validation, application access failure, or unacceptable delta after final sync.
- 2. Collect pre-copy evidence: Capture source and target free space, source item count and byte total, and whether long paths, junctions, or encrypted files exist. Verify name resolution and SMB access from the migration host to both source and target. Export a sample set of representative business-critical paths for later validation. Save screenshots or command output proving source share availability, target path creation, and operator identity used for migration.
- 3. Run and review dry run: Execute a Robocopy /L dry run with the intended copy switches and exclusions. Review the log for skipped files, denied paths, reparse points, path length issues, and overwrite behavior that could affect the cutover. Record any exclusions added after dry run review and the business owner approval for each exclusion. Attach the dry-run log to the ticket and summarize expected copied, skipped, and failed counts.
- 4. Complete pre-seed and final sync readiness: Run the pre-seed copy before the outage or change window and preserve the full log file. Before final sync, confirm user access freeze or application stop plan, open-file handling, and communications sent. Document the exact final sync command line to be used during cutover. Record target share presentation steps such as DFS switch, share rename, drive mapping change, or application path update.
- 5. Validate cutover results: Compare source and target item counts and total bytes after final sync. Validate a business-approved sample set of folders and files, including permissions-sensitive locations and large files. Run hash checks for a sample of critical files and confirm source-to-target match. Record any acceptable variances such as excluded temp folders, archive paths, or files changed after freeze.
- 6. Close with rollback and signoff evidence: Record the rollback method, decision owner, and latest safe point to revert access back to source. Document actual start and end time, operator names, final Robocopy return code, and notable exceptions. Obtain application owner or data owner signoff with timestamp and validation statement. Attach logs, CSV outputs, notes, and the final summary to the change record or handoff pack.
Execution Modes
- local
- remote-host-list
Inputs and Outputs
Inputs
- Migration ID / change ticket - (required) - example: CHG0123456
- Source UNC path - (required) - example: \\SourceServer\Share
- Target UNC path - (required) - example: \\TargetServer\Share
- Robocopy switch set - (required) - example: /E /COPY:DATSO /DCOPY:DAT /XJ /R:1 /W:1 /MT:16
- Exclusion list - example: Temp, Cache, *.tmp
- Validation sample paths file - example: C:\Migration\SamplePaths.txt
Outputs
- verbose-console
- operator-notes
Command Starter
Safe to run: read-only
robocopy \\SourceServer\Share \\TargetServer\Share /L /E /COPY:DATSO /DCOPY:DAT /XJ /R:1 /W:1 /MT:16 /TEE /LOG:C:\Migration\Logs\DryRun.log
robocopy \\SourceServer\Share \\TargetServer\Share /E /COPY:DATSO /DCOPY:DAT /XJ /R:2 /W:2 /MT:16 /TEE /LOG+:C:\Migration\Logs\PreSeed.log
robocopy \\SourceServer\Share \\TargetServer\Share /E /COPY:DATSO /DCOPY:DAT /XJ /R:1 /W:1 /MT:16 /TEE /LOG+:C:\Migration\Logs\FinalSync.log
powershell -NoProfile -Command "Get-ChildItem '\\SourceServer\Share' -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum | Select-Object Count,Sum"
powershell -NoProfile -Command "Get-ChildItem '\\TargetServer\Share' -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum | Select-Object Count,Sum"
powershell -NoProfile -Command "$paths=Get-Content C:\Migration\SamplePaths.txt; foreach($p in $paths){$s=Get-FileHash $p -Algorithm SHA256; $t=Get-FileHash ($p -replace '^\\\\SourceServer\\Share','\\\\TargetServer\\Share') -Algorithm SHA256; [pscustomobject]@{Source=$s.Path;Target=$t.Path;Match=($s.Hash -eq $t.Hash)}} | Export-Csv C:\Migration\Reports\HashSample.csv -NoTypeInformation"Validation
- Source and target byte totals are within approved variance and any differences are explained by documented exclusions or post-freeze changes.
- Robocopy logs show no unexpected access denied, path not found, or repeated retry failures for in-scope data.
- Sample file hash comparison report shows Match=True for all selected critical files.
- Business owner confirms access to the new target path and successful open/save test where permitted.
Reporting
- Cutover summary: source, target, scope, operator, start/end times, final Robocopy return code, and cutover outcome.
- Variance summary: source vs target item counts, total bytes, excluded paths, and any unresolved exceptions.
- Validation summary: sample path results, hash sample count, owner acceptance test result, and signoff timestamp.
- Rollback summary: trigger conditions, decision owner, and whether rollback remained available at close.
Safety Notes
- Avoid delete-oriented options such as /MIR or /PURGE unless they have separate approval, restore evidence, and a clearly documented rollback decision.
- Run from a stable admin host with consistent network pathing to avoid misleading retry and timeout results.
- If preserving owner and audit ACLs with /COPY:DATSO, confirm the operator context has the required rights before the change window.
- Capture and retain the exact command lines used so evidence matches execution and can be repeated if challenged.