c# 中确定是否已安装给定 QFE/补丁的最佳方法是什么?
Doubt
问问题
4089 次
2 回答
2
使用 WMI 并检查Win32_QuickFixEngineering枚举。
来自技术网:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery _
("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
Wscript.Echo "Computer: " & objQuickFix.CSName
Wscript.Echo "Description: " & objQuickFix.Description
Wscript.Echo "Hot Fix ID: " & objQuickFix.HotFixID
Wscript.Echo "Installation Date: " & objQuickFix.InstallDate
Wscript.Echo "Installed By: " & objQuickFix.InstalledBy
Next
HotFixID 是您要检查的内容。
这是我系统上的输出:
修补程序 ID:KB941569 说明:Windows XP 安全更新 (KB941569) 修补程序 ID:KB937143-IE7 说明:Windows Internet Explorer 7 安全更新 (KB937143) 修补程序 ID:KB938127-IE7 说明:Windows Internet Explorer 7 安全更新 (KB938127) 修补程序 ID:KB939653-IE7 说明:Windows Internet Explorer 7 安全更新 (KB939653) 修补程序 ID:KB942615-IE7 说明:Windows Internet Explorer 7 安全更新 (KB942615) 修补程序 ID:KB944533-IE7 说明:Windows Internet Explorer 7 安全更新 (KB944533) 修补程序 ID:KB947864-IE7 说明:Windows Internet Explorer 7 的修补程序 (KB947864) 修补程序 ID:KB950759-IE7 说明:Windows Internet Explorer 7 安全更新 (KB950759) 修补程序 ID:KB953838-IE7 说明:Windows Internet Explorer 7 安全更新 (KB953838) 修补程序 ID:MSCompPackV1 说明:适用于 Windows XP 的 Microsoft Compression Client Pack 1.0 修补程序 ID:KB873339 说明:Windows XP 修补程序 - KB873339 修补程序 ID:KB885835 说明:Windows XP 修补程序 - KB885835 修补程序 ID:KB885836 说明:Windows XP 修补程序 - KB885836 修补程序 ID:KB886185 说明:Windows XP 修补程序 - KB886185 修补程序 ID:KB887472 说明:Windows XP 修补程序 - KB887472 修补程序 ID:KB888302 说明:Windows XP 修补程序 - KB888302 修补程序 ID:KB890046 说明:Windows XP 安全更新 (KB890046)
于 2008-10-15T15:47:52.547 回答
1
最可靠的方法是确定哪些文件受 QFE 影响并System.Diagnostics.FileVersionInfo.GetVersionInfo(path)
在每个文件上使用并比较版本号。
编辑:我认为还有一种方法可以检查注册表中的卸载信息,但是如果 QFE 成为可能报告误报的 Service Pack 或汇总包的一部分
于 2008-09-11T20:58:02.583 回答