How do Windows update "agent shows up-to-date but MetaDefender IT Access still shows OS missing" patches work?

In some situations, we can see a difference between Windows Update Agent (WUA) and MetaDefender IT Access. Microsoft has a scheduler to update the WUA UI. They are not constantly run because it will affect to performance of the device. This happens because it's not time to run a schedule of the WUA UI yet.

We can check the issue by using the OPSWAT script to get all OS missing patches on the device. The script result will return all missing patches in real time

Set objFSO=CreateObject("Scripting.FileSystemObject")
' How to write file
outFile="GetMissingPatchesLogs.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
timeStart = time()
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo timeStart & " : Start search for updates..."
objFile.Write timeStart & " : Start search for updates..." & vbCrLf
Set searchResult = _
updateSearcher.Search("(IsInstalled=0 AND IsHidden=1) OR (IsInstalled=0 AND IsHidden=0) OR (IsInstalled=0 AND DeploymentAction=*)")
timeEnd = time()
timeExcute = DateDiff("s", timeStart, timeEnd)
WScript.Echo timeEnd & " : End search for updates..."
objFile.Write timeEnd & " : End search for updates..." & vbCrLf
WScript.Echo timeExcute & "s to search for updates "
objFile.Write timeExcute & "s to search for updates" & vbCrLf
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates. Quit"
objFile.Write "There are no applicable updates. Quit" & vbCrLf
objFile.Close
WScript.Quit
End If
WScript.Echo "List of applicable items on the machine: " & searchResult.Updates.Count
objFile.Write "List of applicable items on the machine: " & searchResult.Updates.Count & vbCRLF
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
' WScript.Echo I + 1 & "> " & update.Title
objFile.Write update.Title & vbCrLf
Next
WScript.Echo "Quit" & vbCRLF
objFile.Write "Quit" & vbCrLf
objFile.Close
WScript.Quit

The output result will show the same as the current folder script. You can custom the path here

Bash
Copy

You also can use another OPSWAT script to manually install OS patches. Runs the script as an administrator

Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile = "InstallMissingPatchesLogs.txt"
Set objFile = objFSO.CreateTextFile(outFile, True)
' set update title to search for install
updateTitle = "Dell Inc. - Monitor - 1/7/2016 12:00:00 AM - 1.0.0.0"
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
' select server + serviceId
' Dim serverSelection
' serverSelection = 3
' updateSearcher.ServerSelection = serverSelection
' Dim serviceId
' serviceId = "3DA21691-E39D-4da6-8A4B-B43877BCB1B7"
' updateSearcher.ServiceId = serviceId
WScript.Echo "Start install for patch: " & updateTitle
objFile.Write "Start search for updates..." & vbCrLf
Dim searchResult
' search for all updates with criteria
Set searchResult = updateSearcher.Search("(IsInstalled=0 AND IsHidden=1) OR (IsInstalled=0 AND IsHidden=0) OR (IsInstalled=0 AND DeploymentAction=*)")
objFile.Write "End search for updates..." & vbCrLf
If searchResult.Updates.Count = 0 Then
objFile.Write "There are no applicable updates." & vbCrLf
objFile.Close
WScript.Echo "Finish with no applicable updates" & vbCRLF
WScript.Quit
End If
objFile.Write "List of applicable items on the machine: " & searchResult.Updates.Count & vbCrLf
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
objFile.Write update.Title & vbCrLf
Next
Set updateToInstall = CreateObject("Microsoft.Update.UpdateColl")
' loop for search result to look for the update title
For i = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(i)
If UCase(update.Title) = UCase(updateTitle) Then
If update.IsInstalled = False Then
objFile.Write "Result: Update applicable, not installed." & vbCrLf
updateIsApplicable = True
updateToInstall.Add(update)
Else
objFile.Write "Result: Update applicable, already installed." & vbCrLf
updateIsApplicable = True
objFile.Close
WScript.Echo "Finish with patch already installed." & vbCRLF
WScript.Quit
End If
End If
Next
objFile.Write vbCrLf
If updateIsApplicable = False Then
objFile.Write "Result: Update is not applicable to this machine." & vbCrLf
objFile.Close
WScript.Echo "Finish with update is not applicable to this machine." & vbCRLF
WScript.Quit
End If
'download update
Set downloader = updateSession.CreateUpdateDownloader()
downloader.Updates = updateToInstall
Set downloadResult = downloader.Download()
objFile.Write "Download Result: " & downloadResult.ResultCode & vbCrLf
'install Update
Set installer = updateSession.CreateUpdateInstaller()
WScript.Echo vbCRLF & "Installing..."
installer.Updates = updateToInstall
Set installationResult = installer.Install()
'output the result of the installation
objFile.Write "Installation Result: " & installationResult.ResultCode & vbCrLf
objFile.Write "Reboot Required: " & installationResult.RebootRequired & vbCrLf
objFile.Write "Finish install" & vbCrLf
objFile.Close
WScript.Echo "Finish install." & vbCRLF
WScript.Quit

Get the KB title via the output of the script to get the missing pa

tches above

Input the KB title to the install missing patches script

Bash
Copy

For further queries or concerns regarding the Windows update agent shows up-to-date but MetaDefender IT Access still shows OS missing patches, please open a Support Case with the OPSWAT team via phone, online chat or form, or feel free to ask the community on our OPSWAT Expert Forum

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard