PsExec trava. Erro ao iniciar o instalador

2

Em certos computadores remotos, quando uso o PsExec para executar instaladores (arquivos .exe), o PsExec fica pendurado lá. Quando eu tento executar o instalador, que o PsExec transferido, diretamente do computador remoto (localizado no system32) recebo a seguinte mensagem de erro de popup:

NSIS Error
Error Launching Installer

Isso só parece acontecer em computadores de 64 bits e apenas para alguns instaladores. No entanto, depois de googlar um pouco, não encontrei uma solução.

Este link me diz que pode ter algo a ver com o fato de que está sendo executado sob o system32.

O mais estranho é que, se eu copiar o instalador do system32 para algum outro lugar como o meu desktop e executá-lo a partir dele, ele funciona!

O que está acontecendo aqui?

Obrigado

    
por Luca Matteis 23.08.2010 / 12:02

1 resposta

1

Paradoxalmente, em uma máquina Windows de 64 bits:

  1. c: \ windows \ wow64 \ contém arquivos de sistema de 32 bits .
  2. c: \ windows \ system32 \ contém arquivos de sistema de 64 bits .

Quando um programa de 32 bits tenta acessar c: \ windows \ system32 \, ele é redirecionado para c: \ windows \ wow64 \. Isso é muito semelhante ao que acontece quando programas de 32 bits são instalados no diretório c: \ arquivos de programas (x86) \ por redirecionamento.

Você pode achar a seguinte discussão útil: link

Conclusão: Você descobriu uma das muitas razões pelas quais a execução de instaladores do system32 nunca é uma boa prática. Se você não precisar do instalador após a conclusão da instalação, considere copiar o instalador para um local temporário e excluí-lo quando a instalação estiver concluída. Se preferir manter o instalador ao redor de cada máquina, considere estabelecer um local onde os instaladores pertençam (por exemplo, c: \ install \ program-name).

Exemplo de como usar um local temporário:

psexec \target-pc -e -c -f -w c:\windows\temp installer.exe

Detalhes:

  • -e: não carregue seu perfil (acelera as coisas e economiza espaço em disco no PC remoto)
  • -c: copia o arquivo
  • -f: sobrescreve se um arquivo com o mesmo nome já estiver lá (use com cuidado)
  • -w c: \ windows \ temp: defina o diretório de trabalho como c: \ windows \ temp
por 23.08.2010 / 16:14