Question

Je suis en train d'écrire un installateur à l'aide de NSIS qui ajoutera une entrée au GPO de l'ordinateur pour exécuter une commande sur le démarrage du système.

# 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

Tout se passe bien sauf que rien n'apparaît dans… Startup. L'installateur pense que tout fonctionnait:

Output folder: C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup
Extract: mysystweak.bat... 100%
Output folder: C:\Program Files (x86)\myprog

J'ai initialement essayé d'utiliser CopyFiles pour copier le fichier batch de $ Instdir dans… Startup, mais j'ai obtenu le même résultat.

Qu'est-ce qui ne va pas ici?

en relation: https://serverfault.com/q/266338/2101

Était-ce utile?

La solution

S'il s'agit d'un système x64, vous devez désactiver la redirection FS, sans qu'elle $ sysdir ne pointera pas vers le répertoire True System32:

!include x64.nsh

Section
...
SetOutPath $SYSDIR\GroupPolicy\Machine\Scripts\Startup
${DisableX64FSRedirection}
File myprog\mysystweak.bat
${EnableX64FSRedirection}
...
SectionEnd

Vous pouvez vérifier que c'est le problème en regardant l'installateur avec Moniteur de processus

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top