1

我正在创建一个应用程序,它应该在涉及许多查询过程的不同 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 上说明它应该做什么?

4

3 回答 3

0

如果您有简单File 1的 as那么您可以从列HotFixID中检索相关标识符。ServicePackInEffect

HotFixID       ServicePackInEffect
==================================
KB941569.      .
KB898461.      SP3.
File 1.        KB982665.
...            ...
于 2015-02-06T07:02:30.163 回答
0

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

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

于 2015-02-23T06:19:02.053 回答
0

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

于 2012-04-26T14:27:47.900 回答