GPOスタートアップスクリプトへのエントリを追加するインストーラー
質問
私は、NSIを使用してインストーラーを作成する過程にあり、コンピューターの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
何も表示されないことを除いて、すべてがうまくいきます。インストーラーは、すべてが機能したと考えています。
Output folder: C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup
Extract: mysystweak.bat... 100%
Output folder: C:\Program Files (x86)\myprog
私はもともと、copyFilesを使用して$ instdirから…起動にバッチファイルをコピーしてみましたが、同じ結果が得られました。
ここで何が問題になっているのですか?
解決
これがX64システムの場合、FSリダイレクトを無効にする必要があります。
!include x64.nsh
Section
...
SetOutPath $SYSDIR\GroupPolicy\Machine\Scripts\Startup
${DisableX64FSRedirection}
File myprog\mysystweak.bat
${EnableX64FSRedirection}
...
SectionEnd
インストーラーを見ることで、これが問題であることを確認できます プロセスモニター
所属していません StackOverflow