List Installed Windows Updates and Date Installed

We’re currently using the “Installed Windows Patches Information” analysis found in the BigFix Labs site. It’s giving us all installed Windows updates, as well as dates, but it’s putting multiple values in a single column. The problem is when you try to run a web reports, and expand HotFixID and InstalledOn through the Edit Columns dropdown, the information doesn’t match up. Here’s an example:

As you can see in the image above. it will put the same date next to multiple updates. If you expand HotFixID and InstalledOn in the body of the report itself, the number and date will match up correctly. However, this isn’t delimited when exported to csv, and will put multiple values in a single cell:

For reference, here’s the relevance for both HotFixID and InstalledOn from the analysis respectively:

if (exists wmi) then ((string value of property "HotFixID" of it) of select objects "HotFixID from Win32_QuickFixEngineering where HotFixID != 'File 1'" of wmi) as string else ("N/A")

if (exists wmi) then ((string value of property "InstalledOn" of it) of select objects "InstalledOn from Win32_QuickFixEngineering where HotFixID != 'File 1'" of wmi) as string else ("N/A")

Other posts I’ve found for returning installed Windows updates only seems to only return a small portion of what you see in the Installed Updates GUI. I’d appreciate any help anyone can give me.

One option to perhaps better correlate these two fields is to combine them in a single property with something like:

if (exists wmi) then ((string value of property "HotFixID" of it & " - " & string value of property "InstalledOn" of it) of select objects "HotFixID, InstalledOn from Win32_QuickFixEngineering where HotFixID != 'File 1'" of wmi) as string else ("N/A")
2 Likes

That helps. I changed the relevance above to use a comma instead of a dash so I could try and delimit it, but it’s wrapping the whole thing in quotes.

if (exists wmi) then ((string value of property "HotFixID" of it & ", " & string value of property "InstalledOn" of it) of select objects "HotFixID, InstalledOn from Win32_QuickFixEngineering where HotFixID != 'File 1'" of wmi) as string else ("N/A")

Results in something like this:

ServerName,"Update KB981391, 5/3/2013"
ServerName,"Update KB981392, 5/3/2013"
ServerName,"Update KB977236, 5/3/2013"
ServerName,"Update KB2932354, 9/19/2017"
ServerName,"Update KB981111, 5/3/2013"
ServerName,"Update KB977238, 5/3/2013"

So, when I try to delimit it in Excel, it can’t separate the “Update KB” part from the date.

The initial Text-To-Columns command creates creates 2 columns: Column A - servername and Column B - consolidated_Hotfix_data.

A second Text-To-Columns command run on Column B only should give you the results you’re looking for: Column A - servername, Column B - Hotfix ID, and Column C - installed on date.

If you go via the following path it should stop this happening:

Web Reports > Report List > Analysis List > Search for Windows Patches > Select Installed Windows Patches Information > Select View Computers > export

Open the file and delete the rows above the headers then open as CSV and it should be perfect :slight_smile:

@FatScottishGuy That’s a good suggestion, and while it looks right in the UI, it doesn’t quite generate the results that @jsast is looking for.

The data in the export is separated by commas and semi-colons, so that on each row, the computer name is in a single cell, all of the HotFix IDs are in a single cell, and all of the dates are in single cell, like this (shortened for clarity):

"Computer Name","HotFixID","InstalledOn"
"COMP001",“KB3038256”; “KB3191564”; “KB2894856”,“8/2/2017”; “1/28/2018”; “3/1/2015”`

@jsast Giving this more thought, trying to simplify things I came up with this approach for a single property result:

if (exists wmi) then ((computer name & ", " & string value of property "HotFixID" of it & ", " & string value of property "InstalledOn" of it) of select objects "HotFixID, InstalledOn from Win32_QuickFixEngineering where HotFixID != 'File 1'" of wmi) as string else ("N/A")

2 Likes

I’ve come up with a solution for this but not on BigFix or Webreports - I use a Macro within the CSV and it sorts all the data correctly and spits it out in an almost mirror image of the webreports format. Let me know if you need / want it.

1 Like

Hi @FatScottishGuy Is it possible you share with me that macro?

Do I need a certain version of Bigfix because I don’t have the Installed Windows Patches Information anaylsis on my system?

If you don’t see a little “lab glass flask” with the title BigFix Labs in the lower-left corner then you need to enable it under the License Overview in BigFix Management.

Thanks for the quick reply. I came from a BF environment, but it was already well setup, my current one is a big mess.

I do have BigFix Labs module installed, but I dont see that analysis available

Have you enabled the Windows Patching Dashboard?

It was not, but it is now

So now I see that the Analysis needs to be running, but I don’t see it listed anywhere

Do you have computers subscribed to the site? If not, the Analysis won’t be relevant so you may have to click ‘Show non-relevant content’ at the top of the console to display it.

What site do I need to subscribe the computers too? BigFix Labs?

This is under the Windows Patch Management dashboard

image

But when I click on the Analysis, nothing happens

Found it Jason, and it was Non-Relevant

So do I need to subscribe to the Big Labs site to get them to show up?

You’ll need to either subscribe your Windows computers to the BigFix Labs site, or make a custom copy of the analysis and store it in a custom site to which the Windows computers are already subscribed.

Thank you all for the help - I have successfully subscribed to the site, and I am seeing the information start to filter in

Now the real fun begins