A set of clean, automated PowerShell scripts for managing and applying Windows Updates using the PSWindowsUpdate module.
Supports three distinct update profiles depending on your hardware and driver policy:
- All Updates – Full update (OS, software, drivers, and firmware/BIOS).
- Drivers, No Firmware – OS updates and hardware drivers (GPU, network, audio, chipset), but skips firmware/BIOS updates.
- No Drivers or Firmware – Standard OS patches and software updates only.
Run PowerShell as Administrator:
.\Update-WindowsSystem.ps1 -Mode All -AutoReboot(Or use the shortcut: .\Update-All.ps1 -AutoReboot)
.\Update-WindowsSystem.ps1 -Mode DriversNoFirmware(Or use the shortcut: .\Update-DriversNoFirmware.ps1)
.\Update-WindowsSystem.ps1 -Mode NoDriversOrFirmware(Or use the shortcut: .\Update-NoDriversOrFirmware.ps1)
If you prefer running direct PowerShell commands without cloning this repository:
# Prerequisites (Run once in elevated PowerShell)
Set-ExecutionPolicy RemoteSigned -Scope Process -Force
Install-Module -Name PSWindowsUpdate -Force -Confirm:$false
Import-Module PSWindowsUpdate
# Option A: Install ALL (OS + Drivers + Firmware)
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
# Option B: Install Drivers, Skip Firmware
Install-WindowsUpdate -MicrosoftUpdate -NotTitle "*Firmware*", "*BIOS*" -AcceptAll -AutoReboot
# Option C: Install OS Updates Only (No Drivers, No Firmware)
Install-WindowsUpdate -NotCategory "Drivers" -NotTitle "*Firmware*", "*BIOS*" -AcceptAll -AutoReboot| Parameter | Type | Default | Description |
|---|---|---|---|
-Mode |
String |
'All' |
Update profile: All, DriversNoFirmware, or NoDriversOrFirmware. |
-AutoReboot |
Switch |
False |
Automatically reboots the machine if required by an update. |
-ScanOnly |
Switch |
False |
Only checks and prints pending updates matching the mode without installing them. |
To check what updates are available without installing:
.\Update-WindowsSystem.ps1 -Mode DriversNoFirmware -ScanOnly- PowerShell 5.1+ or PowerShell 7+
- Administrator Rights: Must be run from an elevated PowerShell prompt.
- Execution Policy: If prompted that scripts are disabled on your system, run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
- NuGet Provider Prompt: The script automatically attempts to install NuGet if missing. If manually prompted, enter
Y.
MIT License. See LICENSE for details.