Windows 7 などでの UAC エベレーションに関する多くの記事を読みましたが、質問に対する答えを見つけることに成功しませんでした: アプリケーションが常に「管理者として実行」されることを保証する方法、いくつか探していますコードスニペットまたは何か他のもの。どんな助けでも大歓迎です。/ また、次のような投稿をスパムしないでください。「この権限とアクセス権が本当に必要ですか?」
4 に答える
次のセクションを使用して、アプリ マニフェストをアプリに追加します。
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
Windows には、アプリケーションに管理者特権を付与する機能がありません。権限はユーザーによって付与されます。
アプリケーションを実行しているユーザーに管理者権限がない場合、アプリケーションには管理者権限がありません。
プログラムがそれを望んでいるため、プログラムに「永続的な」管理者権限を保証することはできません。ユーザーには権限が付与されている必要があります。
- 管理者権限を必要としないようにアプリケーションを設計できます:)
- アプリケーションが管理者権限を必要としている
ことを宣伝できます
- UACオフのリクエストは受け付けられません:(
- リクエストにUACを使用すると、受け入れられない場合があります:(
ただし、アプリケーションに管理者権限を付与するように要求することはできません。
私の理解が正しければ、あなたのアプリケーションはユーザー シェルになります。つまり、Windows Explorer を置き換えます。このシナリオでは、さまざまな方法で UAC をバイパスできます。たとえば、資格情報マネージャーを使用してユーザーの資格情報を取得し、それを使用して新しいトークンを作成するか、LogonUser 関数をフックして変更されていないトークンを取得します。
ただし、最も簡単な方法は、UAC を無効にすることです。ユーザーが Internet Explorer または UAC サンドボックスを利用する別のプログラムを実行する場合を除き、シナリオで UAC をオンのままにしておく理由はおそらくありません。