Вы можете использовать команду REGEDIT и проверить, присутствует ли ключ с именем, соответствующим коду продукта пакета, под следующим ключом
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Если это не там, это также может быть здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
Следующая команда BATCH может сделать это за вас, замените только код продукта реальным:
@echo off
SET PRODUCTKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
REM *** Write your package code here
REG QUERY %PRODUCTKEY%\{00000000-0000-0000-0000-000000000000}
IF NOT %ERRORLEVEL% EQU 0 (GOTO :INSTALL) ELSE GOTO :ENDHERE
:INSTALL
ECHO Not installed
GOTO :END
:ENDHERE
ECHO Installed
GOTO :END
:END
Или однострочная версия:
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{00000000-0000-0000-0000-000000000000}
В качестве альтернативы вы можете запустить
msiexec.exe /fp {00000000-0000-0000-0000-000000000000}
который восстанавливает пакет, только если файл отсутствует, поэтому он не должен делать ничего для правильно установленных пакетов. Но установщик запустится и попытается восстановить установленный пакет.