How to Automatically update all devices in device manager
The article Script to install or update drivers directly from Microsoft Catalog contains a PowerShell script for doing what is asked.
The article includes good explanations of each part of the script. I reproduce below just the bare script with only minor changes (which I have not tested):
#search and list all missing Drivers
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.ServiceID = '7971f918-a847-4430-9279-4a52d1efe18d'
$Searcher.SearchScope = 1 # MachineOnly
$Searcher.ServerSelection = 3 # Third Party
$Criteria = "IsInstalled=0 and Type='Driver' and ISHidden=0"
Write-Host('Searching Driver-Updates...') -Fore Green
$SearchResult = $Searcher.Search($Criteria)
$Updates = $SearchResult.Updates
#Show available Drivers
$Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl
#Download the Drivers from Microsoft
$UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { $UpdatesToDownload.Add($_) | out-null }
Write-Host('Downloading Drivers...') -Fore Green
$UpdateSession = New-Object -Com Microsoft.Update.Session
$Downloader = $UpdateSession.CreateUpdateDownloader()
$Downloader.Updates = $UpdatesToDownload
$Downloader.Download()
#Check if the Drivers are all downloaded and trigger the Installation
$UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { if($_.IsDownloaded) { $UpdatesToInstall.Add($_) | out-null } }
Write-Host('Installing Drivers...') -Fore Green
$Installer = $UpdateSession.CreateUpdateInstaller()
$Installer.Updates = $UpdatesToInstall
$InstallationResult = $Installer.Install()
if($InstallationResult.RebootRequired) {
Write-Host('Reboot required! please reboot now..') -Fore Red
} else { Write-Host('Done..') -Fore Green }
A general-purpose and powerful package is PSWindowsUpdate.
Here are a couple of tutorials on installing and using it :
- Windows 10: Update and Upgrade Windows 10 using PowerShell.
- Managing Windows Updates with PowerShell
The package adds the Get-WUInstall
command (and others) with which you may
get and install updates.
The source of Get-WUInstall
is also available separately
from github.
Another example on its use is found in the article PS Script to automate Windows and MS Updates.
An Application Windows Update MiniTool exists which can get those drivers, yet its capable of much more - regarding windows updates.
(I personally still prefer the script from harrymc, its painless - just start it and done)
- English Forum
- Russian Forum (original source)
Quoted from the English Forum:
An alternative to the standard Windows Update
What you can do:
- Check for updates
- Download updates
- Installing Updates
- Deleting installed updates
- Hiding unwanted updates
- Get direct links to the *.cab / *.Exe / *.Psf update files
- View update history
- Configure Automatic Updates
Another tool to update, very similar to "Windows Update MiniTool":
https://github.com/DavidXanatos/wumgr
Download link: https://github.com/DavidXanatos/wumgr/releases/latest