Windows preparation and recovery

Before reinstalling Windows, export a WinGet app list and record what it misses

Export a WinGet inventory before reinstalling Windows, keep unmatched apps on a separate checklist, and compare package IDs without confusing a list with a backup.

By: 3sec Editorial Team Sources checked: 6 min read 1147 words

Make an app checklist before you reset Windows

Export a WinGet inventory while the old installation still works, then save a separate list of applications the export misses. Keep both with your backup outside the drive being reset; a JSON package list cannot recover your documents, application settings, or license information.

For example, a developer laptop may have a code editor, a Store application, and a utility installed from a vendor's website. Installation origin alone does not tell you which entries will export. Inspect the actual list and warnings, then record anything needed for your work that is absent.

The workflow below is based on Microsoft documentation checked on September 24, 2026. It was not tested by resetting a PC or importing applications during this review. The small comparison example is fictional and contains no claim about what is installed on your computer.

Check the Windows and WinGet versions first

This guidance targets Windows 11 and Windows 10 version 1809, build 17763, or later with WinGet available. That is the client's documented minimum, not a statement that every qualifying Windows release remains within its support lifecycle. Microsoft's WinGet overview explains distribution through App Installer and notes that first-user registration can take time.

Open PowerShell from Start and run winget --version, then winget export --help. Record the reported version in your preparation note. If the command is unavailable, use Microsoft's App Installer troubleshooting instructions to check installation and verify it afterward. On a managed computer, ask IT to resolve blocked installation or source access.

Do not substitute an unfamiliar downloaded executable simply because its name resembles WinGet. If the client cannot be made available before maintenance, write a manual app inventory and resolve the backup plan before proceeding.

Export into a new file and keep the warnings

Use a new, clearly named output file in an existing folder you can write to. In PowerShell, winget export --output "$env:USERPROFILE\winget-before-reset-20260924.json" creates the inventory at the indicated location; choose another filename if it already exists.

Microsoft's export documentation describes JSON output, optional --include-versions, and warnings when installed applications cannot be matched to a configured source. If you need a version record, add that option and use a different filename. It records versions; it does not preserve installer files or ensure that those versions will remain downloadable.

Read the terminal output before closing it. For each unmatched application, record its display name, what you use it for, its official installation route, and any separate configuration recovery step. Keep this note private if it exposes internal software names. Do not suppress warnings during this preparation.

Open the JSON in a local text editor and inspect Sources, Packages, and PackageIdentifier. Look for a few applications you know you need. Copy the file and exception note to your backup location, then reopen the copied file there. Merely seeing the original file in your user profile does not establish that it will survive a reset.

A worked comparison that reveals one missing item

Compare the same small scope before and after rebuilding: one package identifier per line, in the same alphabetical order. Leave export timestamps, versions, and unrelated JSON formatting out of this particular comparison; keep the complete originals for other checks.

For this illustrative exercise, use three fictional identifiers in the before list: Demo.Editor, Demo.Plotter, and Demo.Reader, each on its own line. The after list contains only Demo.Editor and Demo.Reader, again on separate lines. These labels are not installation commands or asserted registry entries.

Paste the before list into Original and the after list into Modified in ToolboxHub Text Diff, using Line mode. The expected result is one removed line, Demo.Plotter, marked with a minus sign. The other two lines remain unchanged. Add Demo.Plotter between the two lines in Modified; the expected result becomes “Texts are identical.” This is a reproducible acceptance check for the pasted comparison, not evidence that an application was installed.

In a real rebuild, obtain the after list from a fresh export saved under a different name. Copy identifiers carefully from the same source groups and retain source context separately if an identifier is ambiguous. A missing line becomes an investigation item: check whether the app is absent, deliberately excluded, or installed but no longer matched. Do not automatically reinstall it just because a text comparison shows a deletion.

Resolve mismatches without treating the JSON as a backup

Use the symptom to decide the next check. A successful command or matching identifier list cannot establish that your working environment is restored.

  • An app you rely on is missing from the export: Check the warning output and your manual inventory. Record its vendor installation route and configuration needs rather than assuming all installed programs are covered.
  • The file is absent or cannot be written: Read the error and check the exact output path and folder permissions. Choose an existing writable folder and a fresh filename, rerun, and open the resulting file before copying it elsewhere.
  • Text Diff shows many removed and added lines: Confirm that you pasted identifiers from the same scope, with identical ordering and no accidental spaces. Comparing full JSON can highlight harmless metadata changes; moved lines can also appear as removal plus addition.
  • A later import reports an unavailable package or version: Keep that entry unresolved and consult the official source or vendor. Microsoft's import reference documents options for ignoring unavailable packages or versions; those options can change what gets installed and are not proof of recovery.

After any separately planned reinstall, launch each essential application and check a harmless sample task, such as opening a copied project. Confirm required settings and access through the application's own interface. Track “listed,” “installed,” and “usable” separately so a matching name does not close an unfinished recovery task.

FAQ

Does export copy my applications and their settings?

No. Treat the file as package inventory. Preserve work files, settings and recovery information through appropriate backup procedures, and verify those copies separately.

Should I include versions every time?

Include them when reproducing versions matters, but keep a plan for unavailable releases. A recorded version is useful evidence of the old environment, not a saved installer.

Can ToolboxHub read the installed apps or edit the export?

No. Text Diff compares pasted strings and highlights differences. It cannot inspect Windows, discover applications, edit the JSON file on disk, back up files, or install software. Limit pasted content to a small nonsensitive extract; large comparisons can be slow.

If both lists match, is the rebuild finished?

No. It only confirms equality of the text you supplied. Check exceptions, versions where relevant, configuration, access, and a real task in each essential app before marking your own recovery checklist complete.

References