确定Windows Update分类

时间:2018-01-22 13:12:31

标签: c# .net windows-update wuapi

从Windows Update COM库(WUAPILib)我可以访问IUpdate接口但是我没有看到任何方法来获取更新分类(严重,重要,可选)以分组更新与控制面板中的Windows Update UI一样。

1 个答案:

答案 0 :(得分:1)

借助IUpdate,您可以从更新ID获取IcategoryCollection。

现在,第一个ICategory存储操作系统更新类型的分类。请特别注意评论所在的行:

Console.WriteLine("Patch name = " + ic.Name.ToString());
// In the ICategory collection, first element ICategory stores information of "Update Classification"; 
// whereas second Icategory element stores the product type information.

测试代码:

UpdateSession uSession = new UpdateSession();
IUpdateSearcher uSearcher = uSession.CreateUpdateSearcher();
uSearcher.Online = false;
ISearchResult sResult = uSearcher.Search("IsInstalled=1 And IsHidden=0");
Console.WriteLine("Found " + sResult.Updates.Count + " updates" + Environment.NewLine);
   foreach (IUpdate update in sResult.Updates)
   {
          Console.WriteLine();
          Console.WriteLine("Required update " + update.KBArticleIDs[0].ToString() + " is installed...");
          Console.WriteLine("Update ID = "+update.Identity.UpdateID);
          ICategoryCollection icc = update.Categories;
          foreach (ICategory ic in icc)
          {
            Console.WriteLine("Patch description = " + ic.Description.ToString());
            Console.WriteLine("Patch category = " + ic.CategoryID.ToString());
            Console.WriteLine("Patch Type = " + ic.Type.ToString());
            Console.WriteLine("Patch name = " + ic.Name.ToString()); 
// only first ICategory element stores the patch name,
// which reveals the Classification information
          }
   }

示例输出:

enter image description here