Установщик, который добавляет запись в сценарии запуска GPO - PullRequest
0 голосов
/ 05 мая 2011

Я нахожусь в процессе написания установщика, использующего NSIS, который добавит запись в объект групповой политики компьютера для запуска команды при загрузке системы.

# 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

Все идет хорошо, кроме того, что ничего не отображается в…\Запускать.Установщик считает, что все работает:

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

Я изначально пытался использовать CopyFiles для копирования командного файла из $ INSTDIR в ... \ Startup, но получил тот же результат.

Что здесь не так?

связанный: https://serverfault.com/q/266338/2101

1 Ответ

1 голос
/ 05 мая 2011

Если это система x64, вам нужно отключить перенаправление FS, без него $ SYSDIR не будет указывать на истинный каталог system32:

!include x64.nsh

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

Вы можете убедиться, что это проблема, наблюдая за установщиком с Process Monitor

...