エクスプローラーを(セットアッププログラムによって)管理者特権で再起動した後、Modern UIアプリを起動しようとすると、このメッセージが表示されます。
私はそれを修正する方法を知っています(管理者権限なしでエクスプローラを再起動するだけです)が、興味があります:管理者権限で実行しているエクスプローラでメトロアプリを実行することはなぜ禁止されていますか?正当な理由は考えられません。
エクスプローラーを(セットアッププログラムによって)管理者特権で再起動した後、Modern UIアプリを起動しようとすると、このメッセージが表示されます。
私はそれを修正する方法を知っています(管理者権限なしでエクスプローラを再起動するだけです)が、興味があります:管理者権限で実行しているエクスプローラでメトロアプリを実行することはなぜ禁止されていますか?正当な理由は考えられません。
回答:
私はしばらく前に自分でこのエラーに直面し、少し調べましたが、ここで原因について理解しました。Windowsプログラミングの専門家が重大な間違いを見つけた場合は、親切に編集して改善してください。
Windows 8と新しいMetro / Modern UIとアプリの導入により、OSのセキュリティモデルにいくつかの機能強化が必要になりました。AppContainerはMetroアプリに適用される新しい分離方法であり、既定では、アプリ自体のAppDataフォルダーを除き、ほとんどのオペレーティングシステムの読み取りと書き込みの両方を禁止します。
Metroアプリケーションは、アプリケーションマニフェストファイルで、アクセスする必要があるOS 機能について宣言することができます。これについては、Building Windows 8ブログの信頼できる信頼できるMetroスタイルアプリの配信の記事でもう少し読むことができます。
AppContainerは、Windows 8の新しい整合性レベルを通じて実装され、OSに対するいくつかの追加変更によってサポートされます。AppContainer整合性レベルは、より高い整合性レベルでマークされたオブジェクトへの読み取りアクセスと書き込みアクセスの両方をブロックします。現在、Windowsエクスプローラーは通常中整合性モードで実行され、explorer.exeは、他のすべてのユーザー開始プロセスがアクセストークンを継承する親プロセスです。Explorerが管理者特権で、つまり高い整合性レベルで実行されている場合、起動するすべてのMetroアプリはその管理アクセストークンを継承します。これは明らかに、AppContainer整合性レベルによって提供されるサンドボックス環境に違反するため、厳密なno-noです。したがって、エラーメッセージがスローされます。