RemoteApp専用ユーザを作成して、Remote Appのみ接続可能にさせる方法

Windows ServerやWindows 7 Ultimateで利用できる、サーバ上のアプリケーションのみをローカルマシンで実行できるRemoteApp。
この機能はリモートデスクトップの機能を利用して実現されているため、RemoteAppのみを許可させる、という設定項目が存在していない。(Windows Server 2012時点)

特定のユーザでRemote Appのみを許可し、リモートデスクトップでの接続を無効にするには、どうすればよいのだろうか?
リモートデスクトップで接続した際、即座にログオフ処理が走れば、リモートデスクトップ接続が無効(できない)と同義になるだろう。

今回は、実際にWindows Server 2008 R2を用いて、新規ユーザ「test」を作成し、Remote Appは利用可能なのに、リモートデスクトップ接続は出来ないユーザーを作成する。
なお、すでにユーザ「test」でRemote Appが設定されていることを前提に作業を進めていく。

設定方法は簡単で、testユーザにのみ適用されるローカルグループポリシーを作成し、そこでリモートデスクトップ接続時に自動起動されるプログラムとして「C:\Windows\System32\logoff.exe」を指定するだけだ。
ユーザごとのローカルグループポリシーを設定する手順については、こちらを参照してもらいたい。

ユーザごとのローカルグループポリシーエディタを開いたら、「ユーザーの構成\ポリシー\管理用テンプレート\Windows コンポーネント\リモート デスクトップ サービス\リモート デスクトップ セッション ホスト\リモート セッション環境」から、[接続時にプログラムを起動する]を編集する。

[接続時にプログラムを起動する]の設定ウィンドウが表示されるので、有効にして[プログラム パスとファイル名]に「C:\Windows\System32\logoff.exe」、[作業ディレクトリ]に「C:\Windows\System32」を入力して[OK]。

後は、再起動したらユーザー「test」はRemote Appは利用できるが、リモートデスクトップ接続は接続後デスクトップが表示されることもなくログオフされるようになる。
より万全を期すのであれば、testユーザからのログインは特定のセグメントからのみにし、Administratorなど他のユーザーからのログインは別のネットワークからログインするように設定。さらに、PSexecは利用出来ないようにするといいだろう。