How to Install Any Windows Program in Seconds with Winget

Written by Binod Bharati

Last Updated:

Here’s how most people install a program:

  1. Google “[program name] download”
  2. Click the first link (or worse, an ad)
  3. Download some .exe file
  4. Double-click and hope for the best

Sound familiar?

Well I’m here to tell you there’s a better way, and it’s called Package Manager .

What’s a Package Manager Anyway?

First off, let’s make sure we’re on the same page.

A package manager is a tool that automates the process of installing, upgrading, configuring, and removing software packages.

Think of it like an app store for your command line.

Instead of hunting down individual installers from a dozen different websites, you can grab everything you need from one spot.

It’s faster, more efficient, and less error-prone than manual installation.

On Windows, the big players are:

They all work similarly, letting you install apps with a quick command like choco install notepad++ or winget install vscode.

You might also have heard of some popular package managers on other platforms:

  • Linux distros use apt, dnf, pacman, and others
  • macOS has homebrew
  • And now Windows has winget (finally!)

Using a package manager has some serious perks:

  • Speed: Install multiple apps with a single command
  • Updates: Keep everything up-to-date effortlessly
  • Configuration: Easily set up new machines with your favorite software
  • Clean Uninstall: No more leftover files cluttering up your system

Also Read:

Meet Winget, the Windows Package Manager

While Chocolatey and Scoop have been around for a while, winget is the new hotness in Windows package management.

First announced in May 2020, winget is Microsoft’s official package manager for Windows.

It’s open-source (which I love) and comes preinstalled on Windows 10 version 1809 and later.

With winget, you can:

  • Search for new software
  • Install apps with a single command
  • Update all your installed apps to their latest versions
  • Cleanly uninstall unwanted programs
  • Export a list of all your installed apps for easy setup on a new PC

In my experience, winget has been a total time-saver and simplifies managing my hoard of utilities.

I think you’ll love it too.

You know what else you’ll love? These: 25 Hidden Windows Features You Probably Didn’t Know About

Getting Started with Winget

First things first – let’s make sure you’ve got Winget installed.

If you’re running Windows 10 (version 1809 or later) or Windows 11, you’re probably good to go.

To check, open up a command prompt or PowerShell window and type:

winget --info

Here’s what I see on my machine:

If you see something similar, congratulations!

You’re ready to roll.

If not, you can grab Winget from the official Winget release page on GitHub.

Install that (latest msixbundle file), and you’ll be up and running in no time.

Searching for Software

Winget makes it ridiculously easy to find the right version of the app you want, without any web searches.

The basic syntax is:

winget search <search_term>

Let’s say I want to find a good note-taking app.

I’d type:

winget search note

This command searches the Winget repository for packages matching the term “note“.

Here’s what I got:

Now I can narrow it down and install the one that suits my needs best.

From this list, Joplin, Notion, and Obsidian caught my eye.

In this case, Joplin looks perfect – it’s actively developed, open-source, cross-platform, and I can even self-host a Joplin Sync server. Nice!

Also Read: 36 Windows Search Tricks to Find Any File in Seconds

Installing Software

Now that we’ve found Joplin, let’s install it.

Grab the unique ID from your search results (in this case, Joplin.Joplin) and simply type…:

winget install Joplin.Joplin

Winget takes care of downloading the installer, running it silently, and cleaning up afterward.

It’s that simple!

On my machine, the output looks like:

How easy was that? I think you’ll agree this is way more convenient!

Getting More Info with ‘Show’

Sometimes you want a bit more info about a package before installing.

That’s where the show command comes in handy. It gives you all the juicy details:

winget show <app_id>

This spits out everything like the description, homepage, license, and the SHA256 hash (which you can use to verify the installer’s integrity).

For example:

winget show Joplin.Joplin

I find the show command particularly useful when I want to double-check that I’m getting the right software.

It’s also great for comparing versions and seeing what’s changed in an update.

Installing a Specific Version

By default, winget grabs the latest stable version of an app.

But what if you need an older version for compatibility reasons?

First, let’s check what versions are available using the show command with the –versions flag:

winget show <app_id> --versions

For instance, to see all available versions of Joplin:

winget show Joplin.Joplin --versions

Once you know which version you want, you can install it by appending –version <version_number> to the install command:

winget install <app_id> --version <version_number>

For example, to install Joplin 2.14.22 specifically:

winget install Joplin.Joplin --version 2.14.22

Winget will find and install that exact version.

However, if the specific version you need isn’t available, you may have to resort to manually downloading and installing it from the official application website.

Keeping Your Software Updated

One of winget’s killer features is how easy it makes updating your apps.

To check for updates across all installed software, run…

winget upgrade

This gives you a list of all available updates.

To update a specific app, just run:

winget upgrade <app_id>

Even better, you can update ALL your installed apps at once:

winget upgrade --all

I recommend running this periodically to keep your system in tip-top shape.

For a totally hands-off approach, schedule the upgrade command to run automatically with Task Scheduler. Set it and forget it!

However, there are a few extra options you might not be aware of.

When you run winget upgrade –all, it will prompt you to accept the license terms for each app.

It also won’t include apps installed outside of Winget by default.

To make the upgrade process truly seamless, try this instead:

winget upgrade --all --include-unknown --accept-source-agreements --accept-package-agreements --silent

Let’s break that down:

  • --all: Checks all installed apps for updates, even if they’re already up to date
  • --include-unknown: Also checks for updates to apps installed from outside of Winget
  • --accept-source-agreements: Automatically accepts the terms of agreement for each app’s source
  • --accept-package-agreements: Automatically accepts the license terms for each individual app
  • --silent: Runs the entire process silently, without any prompts or dialogs

With this ultimate command, Winget will quietly update everything in the background, no questions asked!

Now, I should point out that it’s always a good idea to actually read those license agreements before accepting them.

Some apps might have terms that you’re not comfortable with, like data collection or sharing.

But if you’re in a hurry or you’ve already vetted your apps, this command is a real time-saver.

Just fire it off and let Winget do its thing!

Also Read:

Uninstalling Apps with Winget

Removing software is just as easy as installing it:

The uninstall command follows a similar format:

winget uninstall <app_id>

For example, if I decided I didn’t need Joplin after all:

winget uninstall Joplin.Joplin

No more digging through “Add/Remove Programs” or trying to find the right uninstaller!

Listing Installed Packages

Want to see everything you’ve installed with Winget?

Just use the list command:

winget list

You’ll get a neat table of all your Winget-managed apps, complete with names, IDs, versions, and sources.

Here’s a snippet of what mine looks like:

I find this super useful for keeping track of what I have installed across my machines.

Installing Multiple Packages at Once

If you find yourself frequently installing the same set of packages (like when setting up a new system), you can speed things up by installing them all with a single Winget command:

winget install <app_1_id> <app_2_id> <app_3_id>

Just list out the package IDs separated by spaces, and Winget will install them all in one go.

For example, let’s say I’m setting up a new Windows PC.

I can install some of my must-have apps in a single command:

winget install 7zip.7zip Joplin.Joplin VSCodium.VSCodium Obsidian.Obsidian

Winget churns through the list, grabbing each app from its trusted source and quietly installing it.

Such a time-saver compared to hunting down each one individually!

Creating a Batch Install Script

I like to take this a step further by putting my app IDs into a text file, say install_apps.txt, with one ID per line:

Microsoft.VisualStudioCode
Microsoft.PowerToys
ShareX.ShareX
Notepad++.Notepad++
Obsidian.Obsidian
7zip.7zip
VideoLAN.VLC
Mozilla.Firefox

Then, I can install all my apps using this text file with a simple batch script:

@echo off
echo Installing development tools...
for /f %%i in (install_apps.txt) do (
echo Installing %%i
winget install %%i
)
echo Done!

Save this script as install_apps.bat in the same directory as your install_apps.txt, and you’ve got a one-click solution for setting up a new machine just the way you like it!

Exporting and Importing Your App List

Speaking of setting up a new machine, winget can export a list of everything you have installed for easy migration:

winget export --output my_apps.json

This dumps out a JSON file with the package ID and version of each installed app.

Slip that onto a flash drive or shoot it over to a friend, and they can import it with:

winget import my_apps.json

Winget will chug through the list, installing each app in turn.

Advanced Tips and Tricks

Once you’re comfortable with the basics of winget, there’s a whole world of advanced features to explore.

Here are a few of my favorites:

  • Winget has some great built-in help. Use winget --help to see all the available commands and winget <command> –help for details on a specific command.
  • Use --silent to suppress all prompts and dialogs for fully unattended installs
  • Use winget install <app_id> --location "D:\Custom\Path" to install apps to non-default directories.
  • Use winget hash to verify the integrity of packages. If you’re concerned about security, this command lets you check that a package hasn’t been tampered with.
  • If you prefer a graphical interface, check out third-party tools like winstall or Winget-UI. They provide a user-friendly frontend for winget.

When Winget Isn’t Enough

As powerful as Winget is, there might be times when it doesn’t have the package you need, or you need more fine-grained control over the installation process.

In those cases, you have a few options:

  • Check if the package is available through other package managers like Chocolatey or Scoop.
  • Install the software manually and use Winget’s import command to add it to your package list for future reference.
  • Create your own custom Winget package (it’s easier than you might think!)

My Must-Have Winget Packages

Before we wrap up, I want to share a few of my personal favorite Winget packages.

These are the tools I install on every new machine:

  • 7zip.7zip: The ultimate file compression and extraction tool. Supports a wide range of formats and integrates seamlessly with Windows Explorer.
  • SublimeHQ.SublimeText.4: A sophisticated text editor for code, markup and prose. Known for its speed, ease of use, and extensibility.
  • Joplin.Joplin: My go-to note-taking app. Cross-platform, open-source, and supports end-to-end encryption.
  • Notepad++.Notepad++: A powerful text editor with syntax highlighting and tons of plugins.
  • Git.Git: The quintessential version control system. A must-have for any developer.
  • Microsoft.VisualStudioCode: My favorite code editor. Lightweight, extensible, and packed with features.
  • TheDocumentFoundation.LibreOffice: A full-featured office suite that’s open-source and completely free. Includes tools for word processing, spreadsheets, presentations, and more.
  • Mozilla.Firefox: My browser of choice. Fast, secure, and highly customizable with a vast library of add-ons.

Feel free to use this list as a starting point for your own personal must-haves!

The Complete Winget Cheatsheet

Here’s a quick reference guide with all the essential Winget commands:

CommandDescription
winget search <query>Search for packages matching a query
winget show <package>Show info about a package
winget install <package>Install a package
winget install <pkg1> <pkg2> …Install multiple packages at once
winget listList all installed packages
winget upgradeCheck for package updates
winget upgrade <package>Update a specific package
winget upgrade –allUpdate all packages
winget uninstall <package>Uninstall a package
winget export –output <file>Export a list of installed packages
winget import <file>Import a list of packages
winget install <package> –version <version>Install a specific version of a package
winget show <package> –versionsList all available versions of a package
winget –infoCheck winget version and system info
winget –helpShow help for all winget commands
winget <command> –helpShow help for a specific command
winget hash <file>Verify integrity of a package file
winget install <package> –silentSuppress all prompts and dialogs during install
winget install <package> –location <path>Install package to a custom directory
winget upgrade –all –include-unknown –accept-source-agreements –accept-package-agreements –silentUpgrade all packages (including unknown ones) and automatically accept all agreements

I recommend bookmarking this cheatsheet or even printing it out until you memorize the core winget workflow.

It’s not a huge number of commands, but they’re insanely useful to have at your fingertips.

Remember, the next time you’re about to click on a download button, ask yourself: “Couldn’t I just winget this?”

So here’s my challenge to you: Try winget for a week. Just one week. I guarantee you’ll be hooked.

And if you found this guide helpful, don’t forget to share it with your friends and colleagues.

0 Comments

1600 characters left

ABOUT THE AUTHOR

Binod Bharati • Founder

Binod launched PCTips.com to share his 20+ years of experience in Computing, including hardware, Linux, networking, and security. He holds multiple certifications, including CompTIA A+, Network+, Security+, PenTest+, CySA+, and Linux+. Binod is passionate about helping readers make the most of their technology and computing experience.

Read more...