在 Windows 系统中,可以通过 WMI 查询 Win32_QuickFixEngineering 来获得主机上已安装的操作系统更新包信息。如果需要使用 C# 判断指定的 Windows 更新是否已经安装,可以使用以下代码:
/// <summary> /// 查询指定的 Windows 更新是否安装 /// </summary> public static bool IsKbInstalled(string kb) { var query = $"select * from Win32_QuickFixEngineering where HotFixID = '{kb}'"; using (var searcher = new ManagementObjectSearcher(@"root\cimv2", query)) { return searcher.Get().Count > 0; } }
上述代码定义了一个名为 IsKbInstalled 的方法,该方法需要引入命名空间 System.Management
可以传入 Windows 更新的具体编号,返回布尔值代表指定的更新是否已经安装。一个简单的调用方式如下:
var kb = "KB5007215"; if (IsKbInstalled(kb)) { Console.WriteLine("更新已安装"); } else { Console.WriteLine("更新未安装"); }