UAC&UIPIナイトメア

 UACとUIPIにまつわるマニフェスト設定で、Microsoftの恐ろしい見解を初めて知った。

 アクセスレベルが「asInvoker」で、上位ILのプロセスと通信したい場合、Microsoftに金を払って証明書を埋め込むか、おなじみのProgram Files内に実行ファイルを置かないと、他のプロセスとやりとりできなくて正しく動かない。
 これはいろいろ試していると、なんとなくそうなんじゃないかな、と察しはついていたことだが、意外とどこにも書いてなかったりする。

ただし、「uiAccess="true"」を使用して上位権限のプロセスとやり取りするアプリケーションは、以下の 2 つの条件を満たす必要があります。
署名付きのプログラムである
%WinDir% または %ProgramFiles% フォルダに保存されている
Note:
高 IL のプロセスと通信するためには、Administrators グループのメンバーでログオンしていなければなりません。一般ユーザーとしてログオンしている場合には、これらの設定をしても高 IL のプロセスと通信することはできません。

 MSDNUACの説明にちゃんと書いとけヴォケとしか言い様がない。