1

Из какой базы данных 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\ files для клиента (резервное копирование)
  • копаться в реестре и удалять записи, такие как: {HKCU | HKLM}\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Uninstall (Установка и удаление программ)
  • отмена регистрации клиентских сервисов с помощью "sc delete"
  • Удаление папки C:\ Windows\ Installer\ {GUID} (резервная копия)

Запрос к Win32_Product показывает, что программное обеспечение все еще установлено, но, разумеется, «Установка и удаление программ» не выполняется (так как я удалил записи реестра).

Я могу более подробно рассказать о том, что я пробовал, прежде чем идти по ручному маршруту, если это необходимо.

0