How to check if windows has automatic updates waiting from the command line?
Solution 1
We can use IUpdateSearcher::Search to determine the number of yet to be installed updates:
$session = New-Object -com "Microsoft.Update.Session"
$searcher = $objSession.CreateUpdateSearcher()
$results = $objSearcher.search("IsInstalled=0")
$results.updates.count
If you need to do installation by another script, assign the above variables first and add:
$installer = New-Object -com "Microsoft.Update.Installer"
$installer.Updates = $results.updates
foreach ($update in $objresults)
{
$objInstaller.install()
}
Solution 2
take a look at http://wuinstall.com/
From their site - "WuInstall is a command line tool for Windows which enables you to install Windows updates for a certain workstation in a controlled way by using a command line script instead of the standard Windows update functionality."
Related videos on Youtube
Comments
-
Lee over 1 year
If a Windows server (2k3/2k8) is set to "download but not install" updates, is there a way to check from the command line.. perhaps a log file or something I can check with powershell, to see if there are any updates actually waiting to be installed? I'm trying to prevent having to manually log on to each server to check, even though they want the "trigger" pulled manually. We have an automation system in place I can use (CA Autosys) - just not sure what to have it look for.
-
Zoredache about 14 yearsPlease don't crosspost. Pick the best site, and the thread will be migrated if needed. serverfault.com/questions/140321
-
-
vmrob over 9 yearsPossibly worth adding
IsAssigned=1 and IsHidden=0
to the search criteria depending on what the OP is looking for. -
jww about 9 years
$installer = New-Object -com "Microsoft.Update.Installer"
- that does not look familiar to me. What language is that?