使用C#与Windows Update进行交互

Dev*_*inB 15 c# windows-update

是否有任何用于编写可与Windows更新接口的C#程序的API,并使用它来有选择地安装某些更新?

我正在考虑将列表存储在已批准更新的中央存储库中.然后,客户端应用程序(必须安装一次)将与Windows Update连接以确定可用的更新,然后安装批准列表中的更新.这样,更新仍然从客户端角度自动应用,但我可以选择正在应用哪些更新.

顺便说一下,这不是我在公司中的角色,我真的只是想知道是否有一个用于Windows更新的API以及如何使用它.

Chr*_*ich 20

在您的C#项目中添加对WUApiLib的引用.

using WUApiLib;
protected override void OnLoad(EventArgs e){
    base.OnLoad(e);
    UpdateSession uSession = new UpdateSession();
    IUpdateSearcher uSearcher = uSession.CreateUpdateSearcher();
    uSearcher.Online = false;
    try {
        ISearchResult sResult = uSearcher.Search("IsInstalled=1 And IsHidden=0");
        textBox1.Text = "Found " + sResult.Updates.Count + " updates" + Environment.NewLine;
        foreach (IUpdate update in sResult.Updates) {
                textBox1.AppendText(update.Title + Environment.NewLine);
        }
    }
    catch (Exception ex) {
        Console.WriteLine("Something went wrong: " + ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

鉴于您有一个带有TextBox的表单,这将为您提供当前安装的更新列表.有关更多文档,请参见http://msdn.microsoft.com/en-us/library/aa387102(VS.85).aspx.

但是,这将不允许您查找未通过Windows Update分发的KB修补程序.