2014/06/19

RemoteApp のやってはいけない

Microsoft Azure RemoteApp のように、デスクトップ全体ではなく、RemoteApp プログラムによるウィンドウ単位の接続のみが許可されている環境で、デスクトップに無理やりアクセスする方法を思いついたのでやってみた。何の役にも立たないでしょうが、決してまねしてはいけません。

お勧め記事: Microsoft RemoteAppで何ができるの?(@IT) (2014/05/16)
[URL] http://yamanxworld.blogspot.jp/2014/05/microsoft-remoteappit.html



Internet Explorer (IE) などの Web ブラウザーやエクスプローラー、コマンドプロンプト、PowerShell、またはタスク マネージャーなど、そこからプログラムを実行できるアプリが RemoteApp プログラムとして公開されていることが前提にはなるのですが...

RemoteApp の IE (サーバー側の IE) を立ち上げ、http://live.sysinternals.com/desktops.exe を開き、Windows Sysinternals の Desktops を起動します(サーバー側で実行されることになります)。Desktops は、ウィンドウ分割ユーティリティ。サーバー側で実行されても、ローカル側のタスク バーの通知領域におさまってくれます。

ちなみに、最新の Desktops v2.0 は Windows 8 をサポートしていますが、Desktop 2~4 にスタート画面を表示させることはできませんし、端っこの UI も出てきません。Desktop 2~4 で Windows キーを押すと Desktop 1 のスタート画面に切り替わります。、Windows 8.1 だとログオフ時メモリ参照エラーあり。

通知領域の Desktops アイコンを開くと、Desktop 1 に真っ黒の背景と IE のウィンドウが表示されているのがわかります。これが RemoteApp プログラムの実行環境 (RemoteApp シェル) です。この状態で「Press to create Desktop 2」をクリックすると...


Windows Server 2012 R2 のデスクトップに切り替わりました。なぜか、Desktop 1 にあるはずの IE のウィンドウもこちらに。しかも、Desktop 2 側ではマウス操作できません (Desktop 1 側では可能)。

また、タスクバーのアイコンをクリックしてもウィンドウは表示されません。Desktops の中には表示されるんですけど。

そうこうしているうちに、RemoteApp プログラムの IE も Desktops も制御不能に。Desktop 1 のシェルがエクスプローラー シェル(Explorer.exe) ではなくて、RemoteApp シェル (rdpshell.exe) なのが影響しているのかも。しかたがないので、Microsoft Azure RemoteApp のポータル側から強制ログオフさせて終了。ユーザーがログオフした時点で Desktops は強制終了されているはず。

・・・

今回はあまりカスタマイズできない Microsoft Azure RemoteApp でやってみましたが、オンプレミスのリモートデスクトップサービス環境でも同じことができる(Desktops としてはちゃんと機能しませんが)と思います。RemoteApp で公開するアプリには注意が必要かと。変なアプリを実行されないように、AppLocker とかと組み合わせるのがよいかも。

0 件のコメント: