The Complete Guide to Updating All Your Apps with Winget

The Complete Guide to Updating All Your Apps with Winget
Photo by Wajih Ghali / Unsplash

Keeping your Windows system up to date is not just about installing security patches. It’s also about maintaining the latest versions of the applications you rely on every day. The Windows Package Manager (Winget) makes this process incredibly easy — once you know the right commands and a few useful tricks.

In this article, we’ll go step-by-step on how to update all Winget apps, explain each command, cover what to expect, and share a few expert tips to keep your setup clean, consistent, and safe.


🧩 What Is Winget?

Winget is Microsoft’s official command-line package manager for Windows. It lets you install, upgrade, remove, and manage software from multiple trusted sources — all from your terminal or PowerShell.

Instead of manually downloading installers or visiting multiple websites, you can manage everything centrally, much like how Linux users use apt or dnf.

If you’re running Windows 10 (version 1809 or later) or Windows 11, Winget is usually already installed by default. You can verify it by typing:

winget --version

If it shows a version number, you’re good to go.


⚙️ How to Update All Apps at Once

The simplest command to update every application installed through Winget is:

winget upgrade --all

That’s it.
Winget will automatically check for newer versions and install updates for every app it manages.

What Happens Under the Hood

  • Winget scans your installed packages.
  • It compares them with the latest versions available in your configured sources (like winget, msstore, or winget-community).
  • It sequentially downloads and installs the latest versions for each package it can update.

When you want fully unattended updates, especially useful for automation or scheduled tasks, use this:

winget upgrade --all --accept-source-agreements --accept-package-agreements

Explanation of Flags

  • --all → Updates all apps that have newer versions available.
  • --accept-source-agreements → Automatically accepts repository/source terms (so no manual confirmation).
  • --accept-package-agreements → Automatically accepts app license agreements (required for unattended mode).

This is ideal if you plan to run the update command automatically, for example once a week via Windows Task Scheduler.


🔍 Preview Before Updating

Before running the full upgrade, you can check which apps are due for an update with:

winget upgrade

This lists:

  • App name
  • ID
  • Installed version
  • Available version
  • Source

This helps you review updates manually in case you want to skip certain ones.


🧹 Updating Sources First

Sometimes, Winget might not detect updates if its package sources are outdated.
To ensure you’re checking the latest package index, run this before upgrading:

winget source update

This refreshes the local cache of available packages — similar to apt update on Linux.


🧰 Optional: Update a Specific App Only

You can target a specific app instead of updating all. For example:

winget upgrade Microsoft.Edge

This updates Microsoft Edge only.
You can replace the ID with any app name or ID from the list shown by winget upgrade.


🪄 Automating the Update Process

If you prefer to automate Winget updates weekly, here’s how you can set it up with Task Scheduler:

  1. Open Task Scheduler (taskschd.msc).
  2. Click Create Basic Task.
  3. Name it something like Winget Auto Update.
  4. Choose your frequency (e.g., Weekly).
  5. In Action, choose Start a program.
  6. Check “Run with highest privileges” so it can update system-wide apps.

In Add arguments, paste:

-Command "winget upgrade --all --accept-source-agreements --accept-package-agreements"

Set Program/script to:

powershell.exe

Now your system will quietly keep apps up to date in the background.


🧱 Things to Keep in Mind

Here are some important considerations to make your Winget experience smoother:

  1. Run as Administrator
    Some updates require elevated privileges. Always open PowerShell or CMD as Administrator for full success rates.
  2. Microsoft Store Apps
    Winget can list Microsoft Store apps, but some of them are updated automatically by the Store itself, so Winget may skip them.
  3. Apps Not Installed via Winget
    Programs installed manually (e.g., downloaded .exe or .msi files) won’t be updated by Winget unless they were originally installed through it.
  4. Interactive Installers
    A few apps still use interactive installers that require user clicks, even when triggered by Winget. These can’t be fully automated yet.
  5. System Reboots
    Some updates (e.g., system utilities or drivers) may require a reboot to complete installation.

Third-Party Sources
Winget supports multiple repositories (sources). You can check yours using:

winget source list

And add others if needed:

winget source add --name customRepo https://example.com/source.json

💡 Pro Tip: Combine Winget with PowerShell Modules

If you want richer control — such as logging update activity or sending notifications — you can wrap Winget commands in a PowerShell script.
For instance:

$logFile = "$env:USERPROFILE\Documents\winget-update-log.txt"
Start-Transcript -Path $logFile -Append

Write-Host "Starting Winget updates..."
winget source update
winget upgrade --all --accept-source-agreements --accept-package-agreements

Write-Host "All updates completed!"
Stop-Transcript

This keeps a running log of all updates in your Documents folder — helpful for auditing or troubleshooting.


🧭 Summary

Command Purpose
winget upgrade Lists apps with updates available
winget upgrade --all Updates all eligible apps
winget upgrade --all --accept-source-agreements --accept-package-agreements Unattended update of all apps
winget source update Refreshes package index
winget upgrade <app> Updates a specific app only

🏁 Finally

Using Winget to update your apps is one of the cleanest, fastest, and safest ways to keep your Windows environment consistent and secure.
By combining simple commands with automation and regular maintenance, you can completely eliminate the hassle of manual updates.

So, the next time you wonder whether your software is outdated, just open your terminal and run:

winget upgrade --all

That’s your one-stop command to keep your digital workspace clean, secure, and up to date.

Support Us

Share to Friends