Windows更新挂钩

时间:2019-08-02 05:01:00

标签: c# .net windows

我正在寻找一个只要Windows 10上安装了新更新就可以用来触发C#脚本的接口。

我想到每天都要轮询当前的Windows版本,并检查它是否是新版本,但是听起来效率不高。

编辑

我正在考虑每天运行此脚本;因此建议的方法将无法按预期工作。有没有办法检查上次安装更新的时间?

1 个答案:

答案 0 :(得分:2)

Windows Update Agent有一个COM对象,可用于查询Windows Update。

这里是一个例子:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WUApiLib;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var session = new UpdateSession();

            var searcher = session.CreateUpdateSearcher();

            searcher.Online = false;

            var result = searcher.Search("IsInstalled=1");

            Console.WriteLine($"Found {result.Updates.Count} installed updates");

            Console.Read();
        }
    }
}

(您需要在项目中引用COM库“ WUAPI 2.0类型库”)

以上示例可用于检查自上次运行以来已安装的更新数是否已更改。

在参考文档中查找适合您的正确查询;例如,某些更新可能被隐藏。