Где на самом деле хранятся записи Win32_Product в вариантах Server2K12 или Win*?
Из какой базы данных Windows или источника данных Win32_Product извлекает информацию, если не из реестра? Например,
if(Get-WmiObject -Class Win32_Product -Filter "Name like '%PRODUCT%'") { echo Write-Host "PRODUCT IS Installed" exit 0; }
возвращает много информации об установленном продукте (хотя этот метод имеет другие проблемы https://stackoverflow.com/questions/25268491/alternative-to-win32-product)
Теперь мне любопытно, но я не смог найти много подробностей о том, откуда wmi на самом деле берет эту информацию.
Фон:
Попав в небольшую путаницу с поврежденным деинсталлятором для клиента резервного копирования, который конфликтует с другим клиентом резервного копирования, который мне нужно установить, я попытался удалить клиент вручную, что включало в себя:
- перемещение / удаление файлов программы c:\Program Files\ для клиента (резервное копирование)
- копаться в реестре и удалять записи, такие как: {HKCU|HKLM}\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (Установка и удаление программ)
- отмена регистрации клиентских сервисов с помощью "sc delete "
- Удаление папки C:\Windows\Installer\{GUID} (резервная копия)
Запрос к Win32_Product показывает, что программное обеспечение все еще установлено, но, разумеется, "Установка и удаление программ" не выполняется (поскольку я удалил записи реестра).
Я могу более подробно рассказать о том, что я пробовал, прежде чем идти по ручному маршруту, если это необходимо.