UpdateEverything

1.9.0

Updates a Windows machine through every package manager and update channel it can find, running each as an isolated step so one failure does not stop the rest. Covers winget, the Microsoft Store, Windows Update, Microsoft 365 Apps, Defender, PowerShell modules, npm, pipx, uv, Chocolatey, Scoop, rustup, .NET tools and more. Can register itself as a scheduled task with
Updates a Windows machine through every package manager and update channel it can find, running each as an isolated step so one failure does not stop the rest. Covers winget, the Microsoft Store, Windows Update, Microsoft 365 Apps, Defender, PowerShell modules, npm, pipx, uv, Chocolatey, Scoop, rustup, .NET tools and more. Can register itself as a scheduled task with toast notifications.
Show more

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name UpdateEverything

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name UpdateEverything

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Brian Kronberg. Released under the MIT License.

Package Details

Author(s)

  • Brian Kronberg

Tags

Windows Update Maintenance winget WindowsUpdate Chocolatey Scoop ScheduledTask

Functions

Update-Everything Initialize-UpdateEverything Register-UpdateEverythingTask Unregister-UpdateEverythingTask Get-UpdateEverythingTask Test-PendingReboot Convert-PowerShell7ToMsi

PSEditions

Desktop Core

Dependencies

This module has no dependencies.

Release Notes

# 1.9.0

## Each step can have a budget

A step that hangs -- winget waiting on a dialog nobody sees -- used to run
until Task Scheduler stopped the whole process at the execution time limit,
with no summary, no toast and no reboot check. -StepTimeoutMinutes, on both
Update-Everything and Register-UpdateEverythingTask, puts a budget on each
step. When a step runs past it, the processes it started are stopped, the
step is recorded as Failed with the reason, and the run continues. Off by
default.

Steps run in-process, so the budget is enforced by a watchdog thread that
stops the child processes of the step. A step that hangs inside a cmdlet in
this process, such as a Windows Update scan that never returns, has no child
to stop and is not helped; the execution time limit remains the backstop.

FileList

Version History

Version Downloads Last updated
1.9.0 (current version) 7 9/3/2026
1.8.0 8 9/3/2026
1.7.3 7 9/3/2026
1.7.2 6 9/3/2026
1.7.1 7 9/3/2026
1.7.0 14 9/2/2026
1.6.0 5 9/2/2026
1.5.0 8 9/2/2026
1.4.0 8 9/1/2026
1.3.0 8 9/1/2026
1.2.0 7 9/1/2026
1.1.0 6 9/1/2026
1.0.0 4 8/31/2026
Show more