添加GPO启动脚本条目的安装程序

时间:2011-05-05 15:04:29

标签: windows installer nsis gpo

我正在使用NSIS编写安装程序,该安装程序将向计算机的GPO添加一个条目,以便在系统启动时运行命令。

# 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

一切顺利,但没有出现在...... \ Startup。安装程序认为一切正常:

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 个答案:

答案 0 :(得分:1)

如果这是一个x64系统,你需要禁用FS重定向,没有它$ SYSDIR将不会指向真正的system32目录:

!include x64.nsh

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

您可以通过Process Monitor

观看安装程序来验证这是否是问题