Determina 32 bits / 64 bits a partir do script powershell dentro da Inno Setup

0

Considere o seguinte script de powershell:

[System.IntPtr]::Size
[Environment]::Is64BitProcess

Se eu executar isso diretamente dentro do powershell em uma máquina de 64 bits, então eu obtenho corretamente

8
True

Mas quando eu o envolvo dentro de um instalador de extração automática usando o Inno Setup (que é construído em uma máquina de 32 bits) eu sempre obtenho:

4
False

Como posso ter certeza de que o powershell está sendo executado no modo de 64 bits quando em um computador de 64 bits (e 32 bits para um computador de 32 bits)?

Eu também tentei executar um arquivo em lote que chama o script powershell, assumindo que o sistema iria iniciar o powershell em seu modo padrão, mas isso também não funciona.

Eu também tentei o iexpress para quebrar o programa, mesmo problema.

    
por timyha 17.06.2016 / 03:20

1 resposta

0

Se o seu instalador for um aplicativo de 32 bits, ele sempre iniciará um PowerShell de 32 bits. Mesmo usando o caminho completo:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

porque o redirecionador do sistema de arquivos do Windows mudará para C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

para iniciar um PowerShell de 64 bits a partir de um processo de 32 bits, use:

C:\Windows\sysnative\WindowsPowerShell\v1.0\powershell.exe

em uma máquina de 32 bits, o mesmo comando ainda deve executar o PowerShell de 32 bits, mas não posso mais testar isso.

    
por 17.06.2016 / 20:02