How to Use winget to Export and Import Installed Applications Across Windows 11 PCs

Setting up a newly purchased computer, staging a development workstation, or restoring software following a clean operating system installation often requires hours of tedious manual downloads. Visiting dozens of vendor websites, dodging bundled bloatware, and clicking through setup wizards consumes valuable time. The Windows Package Manager (winget), built natively into Windows 11, eliminates this chore by allowing you to export your entire application footprint into a single JSON manifest and batch-install everything on another PC with one command.

What is winget Export and Import?

Windows Package Manager includes dedicated export and import subcommands that interface directly with the official Microsoft Community Repository and custom package sources:

  • winget export: Scans your active system, identifies installed packages that match package repository definitions, and compiles their package identifiers and versions into a clean JSON manifest.
  • winget import: Reads an exported JSON manifest file, matches dependencies across repositories, accepts licensing agreements automatically, and installs every designated application in sequence without user intervention.

Exporting Installed Packages from Your Current PC

To generate your software catalogue from an existing Windows 11 system:

  1. Right-click the Start button and select Terminal (or Terminal (Admin)).
  2. Execute the export command, specifying an output path for the JSON manifest:
winget export -o "%USERPROFILE%\Desktop\installed-apps.json"

By default, winget only exports packages that exist within configured package sources so that they can be reliably restored later. If you wish to include specific versions rather than latest releases, add the --include-versions flag:

winget export -o "%USERPROFILE%\Desktop\installed-apps.json" --include-versions

Inspecting and Customising the Export File

The resulting installed-apps.json file is human-readable JSON. Open it with any text editor (such as Notepad or Visual Studio Code) to review the structure:

{
  "$schema": "https://aka.ms/winget-packages.schema.2.0.json",
  "CreationDate": "2026-10-21T02:00:00.000-00:00",
  "Sources": [
    {
      "Packages": [
        { "PackageIdentifier": "Mozilla.Firefox" },
        { "PackageIdentifier": "Git.Git" },
        { "PackageIdentifier": "Microsoft.VisualStudioCode" },
        { "PackageIdentifier": "7zip.7zip" }
      ],
      "SourceDetails": {
        "Argument": "https://cdn.winget.microsoft.com/cache",
        "Identifier": "Microsoft.Winget.Source_8wekyb3d8bbwe",
        "Name": "winget",
        "Type": "Microsoft.PreIndexed.Package"
      }
    }
  ]
}

You can delete any software entries you do not wish to replicate on the destination machine or manually add new package identifiers found via winget search <appname>.

Importing and Installing Apps on the Destination PC

Once you copy installed-apps.json to your new or re-imaged PC (via USB drive, cloud storage, or local network):

  1. Open Windows Terminal as Administrator on the target Windows 11 computer.
  2. Run the import command, pointing to your manifest:
winget import -i "C:\path\to\installed-apps.json" --accept-package-agreements --accept-source-agreements

The optional agreement flags ensure the installation proceeds fully unattended without pausing at license prompts for individual utilities.

Handling Missing or Unmatched Applications

Not every application on your computer originates from a package repository. Portable tools, proprietary enterprise software, and legacy installers without package IDs are flagged during export:

Scenario winget Behaviour Recommended Action
Standard Repositories Installs unattended No action required; completes automatically.
App Already Installed Skips installation Safely skips to prevent duplication or corrupting existing files.
Unmatched Packages Warns and omits from JSON Install manually or locate equivalent community packages via winget search.
Administrator Rights Required Prompts UAC or fails Always run Terminal as Administrator when executing imports.

Using winget export and winget import transforms multi-hour workstation deployments into a clean, reproducible, five-minute automated workflow.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.