如何使用NSIS创建管理员快捷方式?

cod*_*key 5 nsis batch-file desktop-shortcut

我有一个非常好的NSIS脚本,并创建了开始菜单快捷方式,其中一个指向批处理文件.问题是用户必须右键单击并以管理员身份运行,否则将失败.有没有办法创建以管理员身份运行的快捷方式?我不是试图绕过安全性,只是让它自动提示UAC.我能想到的唯一选择是在批处理文件中指导用户,这是一个俗气的IMO.我还想过为批处理文件本身搜索Run as Administrator,但也是空的.

这是我的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
Run Code Online (Sandbox Code Playgroud)

编辑:我已经检查了CreateShortCut引用,并没有看到它,但认为在NSIS脚本的其他地方可能有一些解决方法. CreateShortCut NSIS

And*_*ers 3

这里有一个功能请求,但它有各种问题,因此尚未实现:

  • Vista 之前的版本将显示 NT5 RunAs 用户对话框,您可以向其中的任何用户进行身份验证,不必是管理员。
  • UAC 关闭时会发生什么?
  • 用户可以手动运行批处理文件或创建自己的快捷方式。

如果您仍然认为这是一个好主意,您可以使用这个这个......