Je souhaite que mon archive auto-extractible à 7 zip exécute un script PowerShell après l'extraction des fichiers. Pour ce faire, j'utilise la méthode décrite ici: http://www.sphaero.org/blog:2011:0504_7zip_self_extracting_autostart_exe
Après l'extraction de fichier, je souhaite exécuter un script PowerShell. Voici le contenu de mon fichier config.txt:
;!@Install@!UTF-8!
RunProgram="InstallCU.bat"
;!@InstallEnd@!
Le fichier InstallCU.bat lance PowerShell:
powershell.exe -ExecutionPolicy Unrestricted -File InstallCU.ps1
Dans le script powershell, je fais beaucoup de choses, notamment en vérifiant certaines clés de registre sous cette branche:
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components
en utilisant Test-Path et Get-ItemProperty cmd-let
Je ne l'ai pas testé, mais je pense que sur les ordinateurs 32 bits, tout se passera bien.
Mon problème est que sur les systèmes 64 bits, la version 32 bits (x86) de PowerShell est lancée. Lorsque j'accède à un chemin du registre sous HKLM: \ Software, il est redirigé vers HKLM: \ Software \ Wow6432Node \ et, bien sûr, il ne parvient pas à trouver les informations dont j'ai besoin (car elles se trouvent dans la branche de registre 64 bits). )
Question:
1) Comment créer un fichier SFX 64 bits 7-zip?
OU
2) Comment puis-je exécuter PowerShell 64 bits à partir de SFX 32 bits?
OU
3) Comment puis-je lire le registre 64 bits (pas Wow6432Node) via le PowerShell 32 bits? (Bien que je pense que cela soit impossible ou augmentera considérablement la quantité de code PowerShell)
OU
D'autres suggestions?
la source