The IT Provisioning Problem
If you are an IT administrator, a developer setting up a new workstation, or simply a power user who frequently reinstalls Windows to keep their system clean, you know the most painful part of the process is not installing the operating system itself. The pain comes immediately afterward.
You have to open a web browser, navigate to a dozen different websites, download the installers for Google Chrome, Visual Studio Code, VLC Media Player, 7-Zip, Spotify, and Slack, and manually click through the “Next > Next > Finish” dialog boxes for every single one.
Linux users have avoided this for decades using package managers like apt. Now, Windows 11 finally has its own native, command-line package manager built directly into the operating system: Windows Package Manager (winget).
Not only does winget allow you to install software silently from the command line, but it also has a powerful feature that allows you to instantly clone your entire software setup from an old PC to a new one using export and import commands.
Step 1: Exporting Your Current Software List
First, we need to generate a blueprint of all the applications currently installed on your perfectly configured “Source” PC.
- Click Start, type
cmd, right-click Command Prompt, and select Run as administrator. - Run the following command to see all the packages
wingetcurrently recognizes on your system:
winget list
To export this list into a configuration file, use the export command followed by the path where you want to save the file. The file must end in .json.
Type the following command and press Enter:
winget export -o C:\Users\YourName\Desktop\my_software.json
winget will scan your system and create a JSON file on your desktop. This file contains the precise IDs (e.g., Mozilla.Firefox or VideoLAN.VLC) of every installed application.
Step 2: Cleaning the Export File (Optional but Recommended)
Before you move the file, you might want to edit it. Sometimes, winget list includes obscure hardware drivers or bloatware that came pre-installed on your specific laptop brand, which you do not want to force-install on your brand-new custom desktop.
- Right-click the
my_software.jsonfile and open it with Notepad. - You will see a structured list of software IDs.
- If you see a package you don’t want (e.g., an old game you don’t play anymore), simply delete that entire block from the JSON file.
- Save and close the file.
Step 3: Transferring the File
You now have a complete, customized blueprint of your ideal workstation environment.
Copy the my_software.json file to a USB flash drive, or upload it to your OneDrive or Google Drive, so you can access it from the new computer.
Step 4: Importing and Installing on the New PC
Now, boot up your brand-new, completely fresh Windows 11 installation (the “Target” PC).
- Copy the
my_software.jsonfile from your USB drive to the new computer’s Desktop. - Open an elevated Command Prompt (Run as administrator).
- Use the
importcommand to read the blueprint file and begin the mass installation:
winget import -i C:\Users\YourName\Desktop\my_software.json
Step 5: The Unattended Installation Magic
Once you press Enter, you can take your hands off the keyboard and walk away.
winget will read the first ID in the JSON file, connect to Microsoft’s secure repository servers, download the latest official installer, and execute it silently in the background. It will automatically agree to the EULAs and use the default installation paths, completely bypassing the GUI dialog boxes.
When it finishes the first app, it will instantly move to the second, and then the third.
If an application requires a reboot, winget is smart enough to handle it or queue it appropriately. You can even force it to accept all agreements automatically by adding two flags to your import command:
winget import -i C:\my_software.json --accept-package-agreements --accept-source-agreements
When you return from getting a cup of coffee, your fresh, empty Windows 11 installation will be perfectly populated with your entire suite of daily driver applications, completely automating the worst part of IT provisioning.