A list of every update and hotfix that has been installed on my computer, coming from either Microsoft Windows Update or from the knowledge base. I need the ID of each in the form of KBxxxxxx or some similar representation…
Currently I have:
const string query = "SELECT HotFixID FROM Win32_QuickFixEngineering";
var search = new ManagementObjectSearcher(query);
var collection = search.Get();
foreach (ManagementObject quickFix in collection)
Console.WriteLine(quickFix["HotFixID"].ToString());
But this does not seem to list everything, it only lists QFE’s.
I need it to work on Windows XP, Vista and 7.
You can use IUpdateSession3::QueryHistory Method.
The properties of the returned entries are described at http://msdn.microsoft.com/en-us/library/aa386400(VS.85).aspx
Set updateSearch = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher Set updateHistory = updateSearch.QueryHistory(1, updateSearch.GetTotalHistoryCount) For Each updateEntry in updateHistory Wscript.Echo "Title: " & updateEntry.Title Wscript.Echo "application ID: " & updateEntry.ClientApplicationID Wscript.Echo " --" Nextedit: also take a look at http://msdn.microsoft.com/en-us/library/aa387287%28VS.85%29.aspx