Como encontrar um caminho onde um aplicativo foi configurado?

3

Não tenho certeza se devo colocar essa questão no Serverfault ou no Stackoverflow.

Estou desenvolvendo um script (então 'pressione start->search ' não é uma opção) e tente descobrir uma maneira de encontrar onde um aplicativo foi instalado .

Eu já tenho o aplicativo SID. Olhou para

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths e

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders , mas isso não ajudou neste aplicativo.

Percorrendo todo o registro, encontrei este caminho:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components0019F09C4327ED11A893800002C0A96619F09C4327ED11A893800002C0A966

Alguém poderia explicar como %code% pode ser calculado se eu não souber com antecedência?

Percebi que o nome da chave aqui é o SID de aplicativo back-to-front mixado:

key 0E0D0A87 6588 CF44 08ED 156E22CA84C6
sid 78A0D0E0-8856-44FC-80DE-51E622AC486C

Então eu tentei pesquisar números de caminho retos e invertidos, apenas 0019F09C e invertidos, mas sem sorte.

Nesta pergunta, o aplicativo é PHP, mas a solução deve funcionar para qualquer aplicativo construído de acordo com as regras do MS (ou seja, não apenas descompacte-se em algum lugar, mas adicione dados apropriados ao eu espero que o PHP faça).

upd: screenshot para a resposta de Evan Anderson

    
por Putnik 30.06.2014 / 22:41

1 resposta

1

Você está olhando para um aplicativo gerenciado pelo Windows Installer. A instalação é identificada por um identificador global exclusivo (GUID, ao qual você está se referindo como "SID"). Esse GUID é usado no nome dos locais do registro onde as informações sobre a instalação são armazenadas. A diferença na aparência do GUID em um local versus outro é porque o GUID é armazenado em alguns locais no formato "compactado" e outros locais como "descompactados". (Veja um pouco sobre o histórico e o código para empacotar / descompactar GUIDs: link )

As opções especificadas durante a instalação do pacote, supondo que ele tenha sido instalado por máquina, seriam localizadas em HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\ComponentsInstallLocation19F09C4327ED11A893800002C0A966\InstallProperties .

Em particular, o valor %code% é o que você está procurando. Este valor pode conter o diretório que foi escolhido para uma instalação, mas não é necessário um pacote de instalação para atualizar este valor.

Como alternativa, você pode localizar todos os arquivos associados a um pacote de instalação substituindo o GUID compactado pelo pacote no seguinte comando:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components" /s | find "PACKED_GUID_HERE"

Isso funcionará com qualquer pacote de instalação, mas poderá fornecer uma lista muito longa e detalhada de arquivos.

    
por 01.07.2014 / 04:26