列出所有MS修补程序/ KB C#

时间:2016-03-17 17:49:37

标签: c#

是否有快速列出所有修补程序/ KB的方法?我看到这个,但不知道在哪里找到使用它的DLL。有没有其他方法可以获得这些信息?

var updateSession = new UpdateSession();
var updateSearcher = updateSession.CreateUpdateSearcher();
var count = updateSearcher.GetTotalHistoryCount();
var history = updateSearcher.QueryHistory(0, count);

for (int i = 0; i < count; ++i)
    Console.WriteLine(history[i].Title);

1 个答案:

答案 0 :(得分:1)

如果您没有互操作库,可以使用dynamic通过ProgID访问它:

dynamic updateSearcher = Activator.CreateInstance(Type.GetTypeFromProgID("Microsoft.Update.Searcher"));
var count = updateSearcher.GetTotalHistoryCount();
var history = updateSearcher.QueryHistory(0, count);

for (int i = 0; i < count; ++i)
    Console.WriteLine(history[i].Title);

接口在MSDN页面上列为WUAPI.idl,因此另一个选项是用midl编译它并引用生成的tlb(添加参考&gt; COM)。

@HansPassant指出tlb已预先注册为“WUAPI 2.0 Type Library”,无需手动编译idl。