5

うまく機能する 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

4

1 に答える 1

3

ここに機能リクエストがありますが、さまざまな問題があるため実装されていません。

  • Pre-Vista では NT5 RunAs ユーザー ダイアログが表示され、そこで任意のユーザーを認証できます。管理者である必要はありません。
  • UAC がオフの場合はどうなりますか?
  • ユーザーはバッチ ファイルを手動で実行するか、独自のショートカットを作成できます。

それでもこれが良い考えだと思う場合は、これまたはこれを使用できます...

于 2014-03-17T14:49:37.360 に答える