web-dev-qa-db-ja.com

「ファイルエクスプローラーを管理者権限で実行しているときに(アプリ名)を開けない」というエラーが発生するのはなぜですか?

Explorerを管理者権限で(セットアッププログラムによって)再起動した後、Modern UIアプリを起動しようとすると、このメッセージが表示されます。

私はそれを修正する方法を知っています(管理者権限なしでエクスプローラーを再起動するだけです)が、興味があります:管理者権限で実行されているエクスプローラーでメトロアプリを実行することが禁止されているのはなぜですか?正当な理由は思いつかない。

6
Thomas Levesque

私はしばらく前にこのエラーに直面し、少し調べました。これが原因について私が理解したことです。 Windowsプログラミングの専門家がひどい間違いを見つけた場合は、編集して改善してください。

Windows 8と、新しいMetro/Modern UIおよびアプリの導入により、OSのセキュリティモデルにいくつかの機能強化が必要になりました。 AppContainerは、Metroアプリに適用される新しい分離方法であり、アプリ自体のAppDataフォルダーを除いて、デフォルトでほとんどのオペレーティングシステムへの読み取りと書き込みの両方を防止します。

Metroアプリケーションは、アプリケーションマニフェストファイルで、アクセスする必要のあるOS機能について宣言を行うことができます。これについては、 信頼性と信頼性の高いMetroスタイルのアプリの提供 ブログのBuilding Windows8の記事でもう少し読むことができます。

AppContainerは、Windows 8の新しい整合性レベルを通じて実装され、OSへのいくつかの追加の変更によってサポートされます。 AppContainer整合性レベルより高い整合性レベルでマークされたオブジェクトへの読み取りおよび書き込みアクセスの両方をブロックします。現在、Windows Explorerは通常、中程度の整合性モードで実行され、Explorer.exeは、他のすべてのユーザーが開始したプロセスがアクセストークンを継承する親プロセスです。 Explorerが管理者権限で実行されている場合、つまり高い整合性レベルで実行されている場合、Explorerが起動するMetroアプリは、その管理アクセストークンを継承します。これは、AppContainer整合性レベルによって提供されるサンドボックス環境に違反するため、明らかに厳密なノーノーです。したがって、エラーメッセージがスローされます。

5
Karan