Installatore che aggiunge la voce agli script di avvio di base
Domanda
Sto scrivendo un installatore utilizzando NSIS che aggiungerà una voce al GPO del computer per eseguire un comando su System Boot.
# From http://nsis.sourceforge.net/LGP_Startup/Shutdown_Script
!include LGPScript.nsh
Section
SetOutPath -
# Install all files from myprog directory into C:\Program Files\myprog
File myprog\*
# Copy mysystweak.bat to System32\GroupPolicy\Machine\Scripts\Startup
SetOutPath $SYSDIR\GroupPolicy\Machine\Scripts\Startup
File myprog\mysystweak.bat
SetOutPath -
# Add GPO entry to execute mysystweak.bat on startup
${LGPScript::Create} 'Startup' 'mysystweak.bat' '' $R1
DetailPrint "Create startup LGP return code:$R1"
# Write uninstaller
Writeuninstaller "${uninstall_name}"
SectionEnd
Tutto va bene tranne che nulla si presenta in ... startup. L'installatore pensa che tutto abbia funzionato:
Output folder: C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup
Extract: mysystweak.bat... 100%
Output folder: C:\Program Files (x86)\myprog
Inizialmente ho provato a utilizzare CopyFiles per copiare il file batch da $ Instdir in ... startup, ma ho ottenuto lo stesso risultato.
Cosa sta andando storto qui?
imparentato: https://serverfault.com/q/266338/2101
Soluzione
Se si tratta di un sistema X64, è necessario disabilitare il reindirizzamento FS, senza che $ Sysdir non indicherà la directory True System32:
!include x64.nsh
Section
...
SetOutPath $SYSDIR\GroupPolicy\Machine\Scripts\Startup
${DisableX64FSRedirection}
File myprog\mysystweak.bat
${EnableX64FSRedirection}
...
SectionEnd
Puoi verificare che questo sia il problema guardando il programma di installazione Monitor di processo
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow