如何检查从Q#安装了Windows QFE /补丁程序?

c#中确定的最佳方式是安装了哪个QFE /补丁?

Solutions Collecting From Web of "如何检查从Q#安装了Windows QFE /补丁程序?"

使用WMI并检查Win32_QuickFixEngineering枚举。

来自TechNet:

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)

最可靠的方法是确定哪些文件受到QFE的影响,并在每个文件上使用System.Diagnostics.FileVersionInfo.GetVersionInfo(path)并比较版本号。

编辑:我想有一种方法来检查注册表中的卸载信息,但如果QFE成为Service Pack或汇总包的一部分,可能会报告错误的否定