うまく機能する NSIS スクリプトがあり、[スタート] メニューのショートカットを作成します。その 1 つがバッチ ファイルを指します。問題は、ユーザーが右クリックして管理者として実行する必要があるか、失敗することです。管理者として実行するためのショートカットを作成する方法はありますか? セキュリティをバイパスしようとしているのではなく、UAC を自動的にプロンプト表示させるだけです。私が考えることができる唯一の代替手段は、粘着性のあるIMOであるバッチファイルでユーザーに指示することです。バッチファイル自体の管理者として実行を検索することも考えましたが、空になりました。
NSIS インストーラーの [スタート] メニュー セクションは次のとおりです。
# CREATE SHORTCUTS
!insertmacro MUI_STARTMENU_WRITE_BEGIN MySoftware
# Create shortcut.
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\$SMGroup"
CreateDirectory "$SMPROGRAMS\$SMGroup\Uninstaller"
SetOutPath $SMPROGRAMS\$SMGroup
CreateShortCut "$SMPROGRAMS\$SMGroup\GO.lnk" "$INSTDIR\bin\go.bat"
CreateShortcut "$SMPROGRAMS\$SMGroup\Uninstaller\Uninstall.lnk" $INSTDIR\Uninstaller.exe
SectionGetFlags ${SEC_SCHEDULER} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} svc jump1 jump1
svc:
# Create shortcut to Scheduler Service Manager
CreateShortCut "$SMPROGRAMS\$SMGroup\Scheduler.lnk" "$INSTDIR\bin\${SVC_MGR_BAT}"
jump1:
DetailPrint "Registry Entry: ${REGKEY}\StartMenu : $SMGroup"
WriteRegStr HKLM "${REGKEY}" StartMenu $SMGroup
!insertmacro MUI_STARTMENU_WRITE_END
編集: CreateShortCut リファレンスを確認しましたが、言及されていませんが、NSIS スクリプトの他の場所に回避策があるのではないかと考えました。 CreateShortCut NSIS