I'm creating an application which should retrieve all the Software and Hotfix updates accurately on different windows OS versions which involves many processes of queries. One method in specific is querying the Win32_QuickFixEngineering Class. Now with the following C# code, I'm able to do so:
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_QuickFixEngineering");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_QuickFixEngineering instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("HotFixID: {0}", queryObj["HotFixID"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
I get a series of results which would be identical to:
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
But as I query the property 'ServicePackInEffect', each query with the HotfixID='File 1' shows something like this:
ServicePackInEffect='KB2259213'
ServicePackInEffect='KB2431232'
ServicePackInEffect='KB2254332-IE7'
ServicePackInEffect='KB960680-v2'
ServicePackInEffect='KB2254343'
ServicePackInEffect='KB93089483'
So my question is, Are these also updates, or hotfixes? Or what? If they are, why is there HotfixID named 'File 1'? and why does their 'ServicePackInEffect' say what it should on the HotfixID?