How to check if windows has automatic updates waiting from the command line?

7,604

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."

Share:
7,604

Related videos on Youtube

Lee
Author by

Lee

Just your typical geek.

Updated on September 17, 2022

Comments

  • Lee
    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.

  • vmrob
    vmrob over 9 years
    Possibly worth adding IsAssigned=1 and IsHidden=0 to the search criteria depending on what the OP is looking for.
  • jww
    jww about 9 years
    $installer = New-Object -com "Microsoft.Update.Installer" - that does not look familiar to me. What language is that?