Instalador do Windows, verifique a existência do pacote

1

Usando o Windows, posso desinstalar o software por script / linha de comando da seguinte forma:

msiexec /x {00000000-0000-0000-0000-000000000000}

Existe um método para testar apenas a existência do pacote fornecido, sem afetá-lo?

Estou interessado em uma entrada verdadeira / falsa ou qualquer outra, indicando se o pacote existe na máquina e pode ser removido usando o instalador do Windows com o comando fornecido.

    
por Selfish 06.01.2016 / 11:29

1 resposta

2

Você pode usar o comando REGEDIT e verificar se a chave com o nome correspondente ao código do produto do pacote está presente na seguinte chave

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Se não estiver lá, também pode estar aqui:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\

O comando BATCH seguinte pode fazer isso por você, apenas substitua o código do produto por um real:

@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

Ou a versão de uma linha:

REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{00000000-0000-0000-0000-000000000000}

Como alternativa, você pode executar

msiexec.exe /fp {00000000-0000-0000-0000-000000000000}

que repara um pacote apenas se um arquivo estiver faltando, por isso não deve fazer nada para instalar pacotes corretamente. Mas o instalador seria iniciado e tentaria reparar o pacote instalado.

    
por 06.01.2016 / 11:56