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
outFile="GetMissingPatchesLogs.txt"
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
updateTitle = "Dell Inc. - Monitor - 1/7/2016 12:00:00 AM - 1.0.0.0"
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