管理者権限で実行されるNSISインストーラーを作成する必要があります。私はこれらの特権を要求します
RequestExecutionLevel admin
これまでのところ、これは機能します。ただし、ユーザーのデスクトップにショートカットリンクを配置する必要もあります。すべてのユーザーのショートカットを作成するのではなく、現在ログインしているユーザーのショートカットのみを作成します。だから私は使用します
SetShellVarContext current
インストーラーセクションで。現在のユーザーが管理者権限を持っている場合、これは機能します。通常のユーザーがいる場合、Windows(7)は特権ユーザーの資格情報を要求しますが、これも正しいです。ただし、インストーラーは、現在のユーザーではなく、特権ユーザーのデスクトップにアイコンを作成します。
では、NSISに、現在のユーザーが管理者権限を持っていない場合にデスクトップアイコンを作成する必要があることをどのように伝えることができますか?
参考までに、RequestExecutionLevelとSetShellVarContextの両方を省略すると、管理者権限の入力も求められますが、インストーラーは現在のユーザーのデスクトップと管理者ユーザーのアイコンを作成します。これはある種の互換性のある動作だと思います。