使用WUAPILib从远程机器检索Windows更新历史
本文关键字:检索 Windows 更新 历史 机器 WUAPILib 程机器 使用 | 更新日期: 2023-09-27 18:07:08
是否可以使用WUAPI 2.0类型库在远程机器上查看Windows更新历史?它必须与Windows XP和Windows 7机器兼容。
它是可能根据微软的文章使用WUA从远程计算机:
"Windows Update Agent (WUA) API可以由远程计算机上的用户或运行在远程计算机上的应用程序使用。"
…但我找不到任何解释如何实际查询远程机器或在何处指定机器主机名或IP地址的地方。
我使用以下示例代码从本地机器获取我需要的信息:
UpdateSession updateSession = new UpdateSession();
IUpdateSearcher updateSearcher = updateSession.CreateUpdateSearcher();
int count = updateSearcher.GetTotalHistoryCount();
IUpdateHistoryEntryCollection history = updateSearcher.QueryHistory(0, count);
for (int i = 0; i < count; ++i)
{
Console.WriteLine(string.Format("Title: {0}'tSupportURL: {1}'tDate: {2}'tResult Code: {3}'tDescription: {4}'r'n", history[i].Title, history[i].SupportUrl, history[i].Date, history[i].ResultCode, history[i].Description));
}
是否有可能使用WUAPILib(或类似的)从远程机器拉回与上述代码相同的信息?WMI类Win32_QuickFixEngineering不提供与WUAPILib相同的信息,所以它不是一个选项,我宁愿不必手动挖掘注册表来提取信息。谢谢你!
一个相关问题的答案基本上回答了我的问题。
下面修改后的代码示例现在可以查询远程机器:
Type t = Type.GetTypeFromProgID("Microsoft.Update.Session", "remotehostname");
UpdateSession session = (UpdateSession)Activator.CreateInstance(t);
IUpdateSearcher updateSearcher = session.CreateUpdateSearcher();
int count = updateSearcher.GetTotalHistoryCount();
IUpdateHistoryEntryCollection history = updateSearcher.QueryHistory(0, count);
for (int i = 0; i < count; ++i)
{
Console.WriteLine(string.Format("Title: {0}'tSupportURL: {1}'tDate: {2}'tResult Code: {3}'tDescription: {4}'r'n", history[i].Title, history[i].SupportUrl, history[i].Date, history[i].ResultCode, history[i].Description));
}