The Windows 11 rollout looks smooth in the lab. Then you push it to Finance and three people can't open their Excel files. One Access database that tracks inventory stops working entirely. Now you're fielding calls from department heads while trying to figure out which of 1,400 files on a shared drive are actually affected.
This doesn't have to happen. A structured legacy file audit before the rollout takes a few hours and prevents days of remediation. This guide gives you the discovery scripts, risk classification framework, and conversion priority matrix to do it right. Once your audit is complete, our IT manager's migration playbook covers the full project plan from conversion through sign-off.
Three changes are responsible for most legacy file failures after a Windows 11 migration:
Declare statements will throw a compile error on 64-bit Office. This includes common patterns in legacy .xls files built before 2010.None of these are Office bugs — they're intentional security and architecture changes. But they're silent until a user opens the wrong file at the wrong time.
Start with a full inventory. Don't rely on user reports — users don't know what they have until they need it. Run these PowerShell scripts from a machine with read access to your file shares.
# Scan a file share for all legacy Office files
$rootPath = "\\server\share"
$extensions = @("*.xls", "*.xla", "*.mdb", "*.xlsm", "*.xlsb", "*.mde", "*.ade")
Get-ChildItem -Path $rootPath -Recurse -Include $extensions -ErrorAction SilentlyContinue |
Select-Object FullName, Extension, Length, LastWriteTime |
Sort-Object Extension, LastWriteTime -Descending |
Export-Csv -Path "C:\audit\legacy-files.csv" -NoTypeInformation
Write-Host "Scan complete. Results in C:\audit\legacy-files.csv"
# Run against a list of workstation hostnames
$workstations = Get-Content "C:\audit\workstations.txt"
$results = @()
foreach ($pc in $workstations) {
try {
$files = Get-ChildItem -Path "\\$pc\c$\Users" -Recurse `
-Include "*.xls","*.mdb","*.xlsm","*.xla" `
-ErrorAction Stop
$results += $files | Select-Object @{n='Machine';e={$pc}}, FullName, Extension, LastWriteTime
} catch {
Write-Warning "Could not access $pc"
}
}
$results | Export-Csv -Path "C:\audit\workstation-legacy-files.csv" -NoTypeInformation
Import-Csv "C:\audit\legacy-files.csv" |
Group-Object Extension |
Select-Object Name, Count |
Sort-Object Count -Descending |
Format-Table -AutoSize
Typical findings for a 100-seat organization: 200–800 .xls files, 10–50 .mdb files. The .mdb files are almost always the high-risk items despite the smaller count.
LegacyLeaps's free scan analyzes your files and shows exactly which ones have macros, Jet SQL, ActiveX controls, and PtrSafe issues — before you start converting.
See IT Team OptionsNot all legacy files carry the same risk. A 2003 budget spreadsheet nobody opens is not the same as an Access database running inventory calculations. Classify every file into one of three tiers before deciding what to do with it.
| Tier | Definition | Examples | Action |
|---|---|---|---|
| Critical | Used in production workflows, automated processes, or opened by multiple users regularly | Inventory .mdb, payroll macro workbook, shared reporting template | Convert before rollout. No exceptions. |
| High | Actively used by one person or team, not automated. Significant disruption if unavailable. | Department budget tracker, client data export, sales pipeline .xlsm | Convert before rollout or within first 2 weeks. |
| Low | Not modified in 12+ months, or read-only archive. No active macros or database links. | Old reports, archived project files, reference spreadsheets | Defer or batch-convert after rollout. |
Use the LastWriteTime column from your CSV as a first pass:
Then add department context. Files in shared Finance, HR, Operations, or Inventory folders should be reviewed with the department head regardless of modification date — business-critical files sometimes go unchanged for months between uses.
For every Critical and High file, you need to know what's inside before you convert. The failure modes are predictable; you just need to check for them.
Declare statements in any module. These are your PtrSafe candidates.CreateObject or COM automation calls (Word, Outlook, Shell). These often fail on 64-bit.Declare statements need PtrSafe updates.IIF(), TRANSFORM, PIVOT — verify these aren't using deprecated Jet-only functions.With your inventory classified and complexity noted, build a simple matrix to drive your rollout timeline. Keep it in a shared location so department heads can confirm ownership:
| File | Type | Tier | Complexity | Owner | Convert By |
|---|---|---|---|---|---|
| inventory.mdb | .mdb | Critical | High (linked tables, ActiveX) | Ops Team | Before rollout |
| payroll-2024.xls | .xls | Critical | High (PtrSafe, COM) | Finance | Before rollout |
| sales-pipeline.xlsm | .xlsm | High | Medium (basic macros) | Sales | Week 1 of rollout |
| budget-archive-2019.xls | .xls | Low | None | Finance | Batch after rollout |
This is the step most IT teams skip — and it generates the most helpdesk tickets after rollout.
Microsoft's June 2022 Office update changed macro defaults: files originating from internet or network shares are blocked by Mark of the Web (MOTW) even if users previously unblocked them on Windows 10. This setting does not migrate with the user profile.
Before rollout, create a Group Policy Object to restore trusted locations:
# GPO path for trusted locations (Office 2016/2019/365)
# User Configuration → Administrative Templates → Microsoft Excel 2016 →
# Excel Options → Security → Trust Center → Trusted Locations
#
# Key setting: "Allow Trusted Locations not on the computer" = Enabled
# Add your file share paths under "Trusted Location #1" through "Trusted Location #20"
# Verify the policy is applied after deployment:
gpresult /r /scope:user | findstr "Trusted"
Set trusted locations for your Finance, HR, and Operations shares before pushing Windows 11. This one GPO prevents the majority of "my macros stopped working" calls.
Don't convert and immediately deploy. Build a 3–5 day validation window into your rollout timeline:
Any file that fails on the test machine needs remediation before rollout — not after.
For a 100–250 seat organization with 500–1,000 legacy files:
| Phase | Estimated Time |
|---|---|
| Discovery (file shares only) | 1–2 hours |
| Discovery (workstations added) | 2–4 hours |
| Risk classification | Half day |
| Critical file complexity audit | 1–2 days |
| Conversion (manual) | 1–3 weeks |
| Conversion (with LegacyLeaps) | Hours to 1 day |
| Validation | 3–5 days |
The conversion step is where most teams lose time. Manual conversion of a complex .mdb with VBA macros and linked tables can take a full day per file. If you have 20 High-risk files, that's 20+ days — compressed into a pre-rollout sprint that rarely has that kind of margin.
LegacyLeaps converts .xls to .xlsx and .mdb to .accdb while preserving VBA macros, formulas, ActiveX controls, and Jet SQL. Everything runs on your machine — no files uploaded. The free scan shows exactly what each file contains before you convert a single byte.
IT Team Pricing & Options.xls files will open in modern Excel on Windows 11, but compatibility issues increase with each Office update. Files with VBA macros are especially vulnerable — macro trust policies changed significantly in 2022, and 64-bit Office does not fully support all 32-bit Jet/VBA patterns found in older .xls files.
.mdb files require the Jet database engine, which Microsoft removed from 64-bit Office. On 64-bit Windows 11 with 64-bit Office 365, .mdb files will not open without installing a 32-bit ACE redistributable — and even then, ActiveX forms and 32-bit VBA APIs will fail.
Always convert Critical files before the rollout. Converting after means users will hit errors in production. Migrating proactively on the old OS lets you test on both platforms and roll back if needed.
Discovery takes 1–4 hours depending on file share size. Risk classification takes 2–8 hours. Manual complexity audit of Critical files takes 1–2 days. Full migration of a 500-file estate typically takes one IT team member 1–2 weeks, or hours using a tool like LegacyLeaps.
Practical fixes for legacy Excel and Access problems. No spam.