requestedExecutionLevelのuiAccess

前回の記事で書いたrequestedExecutionLevelの
2番目のエレメントuiAccessについて

uiAccess="true" にすると上位権限へのメッセージ送信が可能になります。

つまり標準権限で起動したアプリでも、管理者権限で実行中のアプリに対して
ドラッグ&ドロップが可能になります。いわゆるUIPI問題の回避策です。

例えばExplorerで uiAccess="true" に設定できれば、管理者権限で起動したアプリにドラッグ&ドロップできるようになるので、こういった設定があればよいのですが、セキュリティ効果を半減させてしまうのでバランスが難しいです。

但し、uiAccess="true" には2つの条件があります。

(1) 署名付きのプログラムである。
(2) %WinDir% または、%ProgramFiles%フォルダーに保存されている。


単に MT.exe で変更しただけでは、条件を満たしていないので、
「サーバーから紹介が返ってきました」と表示されます。
(この文言が適当なのでしょうかね。)

オープンソースや自作ソフト・自社製品以外で(1)を満たすことはまず無理なので、一般のアプリケーションやMSのプログラムを uiAccess="true" に書き換えることは無理でしょう。

バイナリを直接いじるという手もありますが、ダイジェスト値が変わってしまうので、やはり認証されないと思います。

別プロセスでエクスプローラを管理者権限で立ち上げて、
そこからドラッグ&ドロップするという手はありますが、

ドラドロするようなアプリは、メニューにFileOpenがあるのが普通なので
そこまでするなら、FileOpenを使った方が簡単な気がする。

ドラッグ&ドロップだけでも何とかならないですかね。

----------------
【追記】
自己署名でuiAccess=true を試される方は、こちら




Tags: プログラムメモ  Windows7(x64)関連
author : HUNDREDSOFT | - | -