Список программ для установки и удаления в реестре может помочь вам получить приблизительное представление о том, что установлено:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Удалить
Однако, похоже, это не полный список того, что установлено: /где-адрес-удалить-программы-получить-его-информацию-из-в-реестре?forum=w7itprogeneral" rel="nofollow noreferrer">http://social.technet.microsoft.com/Forums/windows/ en-US/d913471a-d7fb-448d-869b-da9025dcc943/откуда-адресные-программы-получают-свою-информацию-из-реестра?forum=w7itprogeneral
Другим способом может быть использование информации о файле из статьи базы знаний: http://support.microsoft.com/kb/2670838/en (Дополнительная информация: Информация о файле) и используйте функцию WIX/MSI AppSearch/LaunchCondition. Это должно сработать, хотя я нахожу синтаксис немного нелогичным.
Другой подход — написать пользовательское действие и объединить эти два источника (добавить/удалить запись и информацию о файле). Такое настраиваемое действие не внесет изменений в систему и, следовательно, менее проблематично, чем другие настраиваемые действия, вызывающие проблемы с откатом. Я считаю, что проще тестировать и поддерживать пользовательское действие на случай, если в какой-то момент потребуются дополнительные предварительные условия. Хотя это дело вкуса. Я просто считаю, что проще запустить предварительный сценарий для выбранных файлов, чтобы проверить, правильно ли он их идентифицирует и работает, как ожидалось, чем продолжать запускать файл MSI для каждого теста.
Вот аналогичный вопрос с некоторыми указателями от superuser.com: https://superuser.com/questions/521175/determine-if-windows-hotfix-has-been-applied
И еще ссылка на serverfault.com (сайт системного администрирования). Хороший подход с использованием PowerShell, который, безусловно, можно перенести в пользовательское действие: https://serverfault.com/questions/312778/determine-if-user-has-hotfix-981889-установлено
Еще больше материала serverfault.com, включающего update.exe, WMI и сценарий Powershell для просмотра всех установленных исправлений: https://serverfault.com/questions/263847/how-can-i-query-my-system-через-command-line-to-see-if-a-kb-patch-is-installed . Рекомендуется прочитать. Microsoft: http://technet.microsoft.com/en-us/library/hh849836.aspx
PSInfo показывает установленные исправления: http://technet.microsoft.com/en-us/sysinternals/bb897550
person
Stein Åsmul
schedule
13.03.2014