Как проверить, установлен ли Windows QFE / patch с C#?

Как лучше всего в C# определить, установлен ли данный QFE / патч?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
4 032
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Самый надежный способ - определить, какие файлы затронуты QFE, использовать System.Diagnostics.FileVersionInfo.GetVersionInfo(path) для каждого файла и сравнить номера версий.

изменить: я думаю, что есть способ проверить информацию об удалении в реестре, но если 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 - это то, что вы хотите проверить.

Вот результат моей системы:

    Hot Fix ID: KB941569
    Description: Security Update for Windows XP (KB941569)
    Hot Fix ID: KB937143-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB937143)
    Hot Fix ID: KB938127-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB938127)
    Hot Fix ID: KB939653-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB939653)
    Hot Fix ID: KB942615-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB942615)
    Hot Fix ID: KB944533-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB944533)
    Hot Fix ID: KB947864-IE7
    Description: Hotfix for Windows Internet Explorer 7 (KB947864)
    Hot Fix ID: KB950759-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB950759)
    Hot Fix ID: KB953838-IE7
    Description: Security Update for Windows Internet Explorer 7 (KB953838)
    Hot Fix ID: MSCompPackV1
    Description: Microsoft Compression Client Pack 1.0 for Windows XP
    Hot Fix ID: KB873339
    Description: Windows XP Hotfix - KB873339
    Hot Fix ID: KB885835
    Description: Windows XP Hotfix - KB885835
    Hot Fix ID: KB885836
    Description: Windows XP Hotfix - KB885836
    Hot Fix ID: KB886185
    Description: Windows XP Hotfix - KB886185
    Hot Fix ID: KB887472
    Description: Windows XP Hotfix - KB887472
    Hot Fix ID: KB888302
    Description: Windows XP Hotfix - KB888302
    Hot Fix ID: KB890046
    Description: Security Update for Windows XP (KB890046)

Другие вопросы по теме