什么是HotfixID ='文件1'的修补程序?

时间:2012-04-24 03:16:21

标签: c# wmi-query windows-update hotfix

我正在创建一个应用程序,该应用程序应该在涉及许多查询过程的不同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'

所以我的问题是,这些也是更新,还是修补程序?或者是什么?如果是,为什么HotfixID名为'File 1'?为什么他们的'ServicePackInEffect'说出HotfixID应该是什么?

3 个答案:

答案 0 :(得分:0)

我有同样的交易。我正在检查是否通过configman安装了修补程序。他们似乎首先在前面运行修补程序,然后跟进常规修补程序等。

答案 1 :(得分:0)

如果您File 1HotFixID,则可以从ServicePackInEffect列中检索相关标识符。

HotFixID       ServicePackInEffect
==================================
KB941569.      .
KB898461.      SP3.
File 1.        KB982665.
...            ...

答案 2 :(得分:0)

是的,他们是更新。 ' File1中'表示特定的修补程序ID已被取代。只需跳过' File1' HotFixID&#39(query-SELECT * FROM Win32_QuickFixEngineering,其中HotFixID<>' File1')。

Src:http://www.visualbasicscript.com/File-1-shows-in-HotFix-ID-column-m33401.aspx