我正在创建一个应用程序,它应该在涉及许多查询过程的不同 Windows 操作系统版本上准确检索所有软件和修补程序更新。具体的一种方法是查询 Win32_QuickFixEngineering 类。现在使用以下 C# 代码,我可以这样做:
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);
}
我得到了一系列与以下结果相同的结果:
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
HotfixID='File 1'
但是当我查询属性“ServicePackInEffect”时,每个带有 HotfixID='File 1' 的查询都会显示如下内容:
ServicePackInEffect='KB2259213'
ServicePackInEffect='KB2431232'
ServicePackInEffect='KB2254332-IE7'
ServicePackInEffect='KB960680-v2'
ServicePackInEffect='KB2254343'
ServicePackInEffect='KB93089483'
所以我的问题是,这些也是更新还是修补程序?或者是什么?如果是,为什么会有名为“文件 1”的 HotfixID?为什么他们的“ServicePackInEffect”会在 HotfixID 上说明它应该做什么?