
Migrate Apps Between PCs with winget export and import
Moving to a new device usually means reinstalling everything by hand or maintaining a custom image. winget has had export and import for a while now, but most admins still overlook them for PC migrations. They deserve a closer look.
Why this matters
winget export dumps a JSON file listing all packages the winget source knows about on that machine. winget import reads that file on a new device and installs everything in one pass. No scripting, no custom packaging, no Intune app assignments needed for the migration itself.
This is especially useful in environments where users have a mix of standard and self-installed apps. Instead of auditing what someone actually uses and rebuilding it manually, you capture the state and replay it. The JSON is portable, version-pinned if you want, and easy to review before running the import.
How to do it
On the source PC, export the app list (as Administrator):
winget export -o C:\AppIndex.jsonwinget export -o C:\AppIndex.json

*The export will also list application not aviable in winget, so you know what won’t be migrated. Some apps are listed as not found, but present in the JSON, so its worth to doble check. *
This creates a JSON file with every recognised package and its source. Transfer the file to the new device, then run:
winget import -i C:\AppIndex.json —accept-package-agreements —accept-source-agreementswinget import -i C:\AppIndex.json --accept-package-agreements --accept-source-agreements

Add --ignore-unavailable if you want the import to skip packages that cannot be found on the target rather than stopping. Review the JSON before importing. Remove anything already handled by Intune or anything you do not want carried over. The file is plain text, so a quick cleanup in VS Code takes seconds.
When to use it
PC refreshes, hardware swaps, or Windows 11 migrations where you want to carry over the user’s app landscape without building a full deployment package for every tool. Works well for power users, developers, or admins who run a wide set of utilities beyond your managed app catalogue. Also useful for standing up lab or test machines quickly based on a known config.
When NOT to use it
This is not a replacement for managed app deployment. winget import does not handle licensing, configuration, or post-install settings. Apps not listed in the winget source will be missing from the export. Store apps, sideloaded LOB apps, and anything installed outside of standard paths may not appear. If you need compliance reporting or assignment tracking, stick with Intune.
Also be aware: the import runs silently by default but does not guarantee success for every package. Some installers require elevation, interaction, or dependencies that winget cannot resolve on its own.
Recommendation
Use winget export as a lightweight migration helper alongside your existing deployment. Run the export, review the JSON, remove anything already covered by Intune, and import the rest. It fills the gap between “fully managed” and “user-installed” without overcomplicating things.
winget export and import are not a deployment strategy. They are the fastest way to close the gap between what you manage and what users actually run.
References
🔗 export Command | Microsoft Learn 🔗 import Command | Microsoft Learn
Migrate Apps Between PCs with winget export and import describes a lightweight way to move application lists between Windows devices. The winget export and import workflow is useful for migrations, rebuilds and admin automation when teams understand package availability and validation limits.