Anyone who uses computers often knows how quickly some tasks can become repetitive and boring. For someone like me who is constantly troubleshooting or fixing PCs, having a Windows feature for easy software installation is always a handy tool.
WinGet has been a revelation. It’s made these operations significantly easier. But I’ve found ways to use it beyond routine app installations; processes that once took me hours now take just a few minutes.
While WinGet is very powerful and best suited for power users, some of the applications I’m sharing are also suitable for everyday use.
4
WinGet Configuration
Managing the entire system state
With a new computer, you need to install your most-used apps, but doing so one after the other is slow. While you can expedite this with WinGet, installing apps one at a time doesn’t showcase how powerful the tool is. If these singular installations were the goal, it would be preferable to stick with the regular GUI installers.
I use WinGet to configure and manage my system state. So, for instance, with my set of must-have apps for new Windows installations, WinGet simplifies this repetitive task. With one short command, I have all my most used apps installed on any computer.
For this, I use the winget configure command. It takes an initial one-time setup where I define the apps I want to install on any system and save them to a YAML file. Once that is done, I only need to copy that file to the new computer, open PowerShell as an admin, and run the command:
winget configure -f .mysetup.yaml
WinGet looks up all the included apps from their sources, downloads the installers, and runs them silently, giving you feedback once the installations are completed. With this, I can use different computers but have the same apps installed, sharing the same experience across them all.
3
WinGet upgrade –all
One command to get the latest versions of all apps
Everyone knows that keeping apps updated is vital for security, since updates typically come with security features and bug fixes. However, it’s too much of a tedious task to upgrade individual applications one at a time on your computer.
WinGet provides a simple way to do this: the winget upgrade –all command. With this, your computer will download and install all the latest versions of your apps. I often run winget upgrade first to see installed apps, their current versions, and the latest available versions. It’s very handy as it tells me if there are any outdated apps.
WinGet upgrade commands come in handy when I need to troubleshoot. For instance, using this command does a reinstallation and update of every app, including those with uncertain version info:
winget upgrade --all --include-unknown --force
In my experience, these specific apps are often buggy and may not function well. Forcing WinGet to get the latest versions fixes the problem.
2
WinGet pin
Avoid any accidental app updates
WinGet pin ties in perfectly with the upgrade command above. While the guideline is to always update applications, there are a few cases where I don’t need an app updated. For instance, when an update introduces UI changes that require time to adjust, it can hurt my productivity.
Using winget upgrade –all will update all apps, including those you don’t want to update. This is where I love WinGet pin. It gives you granular control over app environments, allowing you to disable or skip updates for certain apps.
The following instructs WinGet to skip all updates for Microsoft PowerToys:
winget pin add --id Microsoft.PowerToys
So when I run winget upgrade –all, every other app except PowerToys will be updated. To carry the state to other computers I use, I execute the winget pin export –output .mypins.json command to save all my pinned apps to a JSON file. I can then share this with my team or friends.
1
WinGet + Task Scheduler
Configure automatic app maintenance
Of all the productivity hacks WinGet offers, automation is at the top of the list. The Windows Task Scheduler can run programs on a schedule, but you can take it to the next level and create an automated maintenance tool when you pair it with WinGet.
The most common usage of this for me is updating all my apps on a schedule. Since the scheduler works with scripts, I can create a new task, add WinGet as the program, and include this command as the script:
upgrade --all --silent --accept-package-agreements --accept-source-agreements
This way, when the scheduled task runs, WinGet will automatically run the script and silently update all my applications. But that’s just one application; I also extend this to other WinGet commands. I can point Task Scheduler to a saved configuration file or a pinned apps list, and the entire setup process becomes hands-free.
Most people see WinGet as a tool for installing and uninstalling apps. Even though this is a huge part of what it does, you can increase your productivity by adapting it to automate some basic tasks. While I’ve shared some of the ways I love to use the tool, I’m still curious to know the unique ways other people use it and how it has enhanced your workflow.