私は一種のカスタム企業セットアップであるアプリを書いています。このアプリは多くのタスクを実行しますが、その中には昇格が必要なものもあります。
アプリの起動時に UAC がユーザーに昇格を要求するように、マニフェストを含めました。
WNetAddConnection
これらのタスクの 1 つは、一部のネットワーク ドライブ ( ) をリモート サーバーにマッピングすることです。これらのマッピングは永続的である必要があります。これまでのところ、アプリを閉じると、アプリがマップしたばかりのドライブがユーザーに表示されないことを除いて、問題はありません。
いくつかの調査 ( https://serverfault.com/a/185885/147818 ) の後、ユーザーがログインすると、セッションが 2 つのトークンを受け取ることを理解しました。昇格が必要なときにプロセスを実行します。
私の質問: アプリのタスクが終了したときに、ユーザーがエクスプローラーでネットワーク ドライブを確認できるように、現在のユーザーがフィルター処理されたトークンを取得するスレッドをアプリが起動する可能性はありますか?
このトークンでスレッドになりすますことは可能ですか?
私はこれらの可能な回避策を認識しています:
- 昇格を必要とする特定のタスクのみが COM オブジェクトにカプセル化されるように、アプリを再設計します。
- 設定を使用してレジストリを微調整します
EnableLinkedConnections
(ユーザーのセッションの再起動が必要です)
しかし、いくつかの理由により、これらのソリューションはどれもオプションではありません。
どんな助けでも大歓迎です