List pending windows updates from command line

wmic qfe list gives me a list of Windows Updates installed on my system.

How do I get the list of the ones that are not installed (including whether or not they've been hidden)?

I want to use the list in another program I am developing, so I will need the output to be some sort of table in a file, such as csv or tab-delimited.

1

3 Answers

Not command-line, but thought this script from MSDN can help.

Source: WU Searcher WMI script from MSDN

Search WU for available updates and list them

Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
WScript.Echo "List of applicable items on the machine:"
For I = 0 To searchResult.Updates.Count-1 Set update = searchResult.Updates.Item(I) WScript.Echo I + 1 & "> " & update.Title
Next
If searchResult.Updates.Count = 0 Then WScript.Echo "There are no applicable updates." WScript.Quit
End If

The above code segment is to search WU for available updates, and list them without downloading. The remaining part of the script at MSDN is to download each of the available updates.

Copy the code to Notepad, and save it with .vbs extension.

3

Here is a quick powershell script to list available updates, if nothing is returnd, then no updates are available. There are two options for $r listed below, you can see how they differ.

$u = New-Object -ComObject Microsoft.Update.Session
$u.ClientApplicationID = 'MSDN Sample Script'
$s = $u.CreateUpdateSearcher()
#$r = $s.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
$r = $s.Search('IsInstalled=0')
$r.updates|select -ExpandProperty Title
1

If you wish to do in one pipeline on remote PC:

Invoke-Command -ComputerName <ComputerName> -ScriptBlock {((New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher()).Search('IsInstalled=0 and IsHidden=0').updates | Select-Object -Property Title,IsDownloaded,RebootRequired | ft -AutoSize}

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like