en-us/about_UpdateEverything.help.txt
|
TOPIC
about_UpdateEverything SHORT DESCRIPTION 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. LONG DESCRIPTION UpdateEverything drives the update mechanisms already on a machine rather than replacing them. It calls winget, Windows Update, Microsoft 365 Apps, Defender, the PowerShell Gallery, npm, pipx, uv, Chocolatey, Scoop, rustup, the .NET CLI and others, each as a separate step with its own log. A step runs only if its tool is present. Everything else is reported as skipped, so the summary distinguishes "nothing to do" from "did nothing". Update-Everything returns an object rather than exiting, so calling it from a session does not end that session. The object carries per-step records, counts, reboot state and log paths. A scheduled task turns FailedCount into an exit code, which is the only thing that crosses a process boundary. COMMANDS Update-Everything Runs the update pass and returns the result. Update-All is an alias. Register-UpdateEverythingTask Registers a scheduled task. Needs an elevated session, because the task itself runs with the highest privileges. Get-UpdateEverythingTask Reports the registered task, or nothing when there is none. Unregister-UpdateEverythingTask Removes the task. Test-PendingReboot Reports whether Windows is waiting on a restart, and why. INSTALLING VERSUS UPDATING Updating something already installed needs no permission. Installing something that was never there does, and this module will not do it silently. Without -AllowInstall, an interactive run asks before each first-time install and defaults to No. A non-interactive run declines and reports the step as skipped, because there is nobody to ask. Approve in advance with -AllowInstall, which accepts All, PowerShell7, PSWindowsUpdate, NuGetProvider and BurntToast. NOTIFICATIONS A run raises a toast when it finishes, and a separate urgent one when a restart is pending. -Notify:$false turns them off. They need the BurntToast module and an interactive desktop session. Neither is required: without them the run proceeds and says so, in one line when -Notify was not asked for. -Attended holds the window open after the summary until a key is pressed, for a run started from a shortcut. It closes on its own after -PromptTimeoutSeconds when given, otherwise ten minutes. A task running as SYSTEM cannot show a notification, which is why Register-UpdateEverythingTask registers the task to run as you. LOGS Logs go to the first writable location among USERPROFILE, LOCALAPPDATA, TEMP and the module directory, under UpdateLogs. Each run writes a transcript and one file per step. Many command line tools write ordinary progress to stderr, so a step is marked Warning only when PowerShell itself raised an error record. EXAMPLES Update-Everything Update-Everything -IncludeWindowsUpdate $false Update-Everything -SkipElevation Register-UpdateEverythingTask -Cadence Weekly -AllowInstall PSWindowsUpdate SEE ALSO https://github.com/briankronberg/UpdateEverything Get-Help -Full -Name Update-Everything |