{{category Windows,nolink}}リモートデスクトップ接続(RemoteApp) !!!RemoteApp とは リモートデスクトップセッションを利用して、サーバーのデスクトップが表示されるのではなく、起動したアプリケーションのウインドウのみがクライアントに表示される。 !!!RemoteApp 環境構築 サーバ側は、リモートデスクトップ接続は Professional エディション以上の Windows に接続出来るが、RemoteApp は Enterprise / Ultimate の Windows もしくは Windows Server である必要がある。 クライアント側は、リモートデスクトップ接続が可能であればよいと思われる。 試した環境は、サーバ側 Windows 7 Ultimate、クライアント側 Windows 7 Professional。 RemoteApp も1セッションとして接続されるので、通常のリモートデスクトップ接続や複数の RemoteApp の接続は出来ない(同じ端末から同じユーザでの利用は同一セッション)。 !!サーバ側設定 RemoteApp で許可するアプリケーションを事前に登録しておく必要がある。 Windows Server (かつ ドメイン環境)であれば RDMS (Remote Desktop Management Service) で設定が出来るようだが、必要な設定をレジストリに登録すればよい。 レジストリは、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications 下に公開するアプリケーション名ごとに、実行ファイルのパスなどを登録する。 レジストリエディタでキー・値を登録するか、以下のレジストリ登録ファイルを作成して結合する。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\<<公開名>>] "Path"="<<アプリケーションのパス>>" "Name"="<<アプリケーション名>>" ,名前,型,値,備考 ,Name,文字列,アプリケーション名, ,Path,文字列,アプリケーションのパス, ,VPath,文字列,アプリケーションのパス,? ,IconPath,文字列,アイコンファイルのパス,表示するアイコン icn か exe or dll ,IconIndex,DWORD,0,アイコンのインデックス番号(負数は ID) ,RequiredCommandLine,文字列,,? ,CommandLineSetting,DWORD,0,? ,ShowInTSWA,DWORD,0,TSWA に表示するか(1:表示) ,SecurityDescriptor,文字列,,? !全てのアプリケーションを許可する 許可するアプリケーションを登録しなくても、以下の方法でサーバ側の全てのアプリケーションを実行できるようになる。システムに影響を与えるようなプログラムも起動出来るので注意すること。 レジストリは、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList 下に、名前 fDisabledAllowList (DWORD型)の値を 1 にする(0 で設定したリストのみ許可)。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList] "fDisabledAllowList"=dword:00000001 !Windows XP と Vista RemoteApp を利用するために事前にパッチを適応する必要がある。XP Mode は適応済み。 * RemoteApp を有効にするための Windows XP SP3 用の更新プログラム ** http://www.microsoft.com/ja-jp/download/details.aspx?id=4465 * RemoteApp を有効にするための Windows Vista SP1 以降用の更新プログラム ** http://www.microsoft.com/ja-jp/download/details.aspx?id=10007 !!クライアント側設定 接続するための“リモート デスクトップ接続 (.rdp)”ファイルを作成し、配布・起動する。 RemoteApplicationMode = 1 とし RemoteApp を有効にし、RemoteApplicationProgram で起動するアプリケーションの公開名を指定する。Full Address には接続するサーバの名前もしくはIPアドレスを指定する。Alternate Shell には、RemoteApp の shell となる rdpinit.exe もしくは RemoteApplicationProgram と同じ公開名を指定する。※公開名で指定する場合は、「||公開名」と“||”を入れる。 以下のファイルを参考に必要な箇所を修正する(リダイレクトはクリップボードのみ許可している)。その他の細かい設定は [[Win32/mstsc]] を参照。 full address:s:<<接続サーバ名orIPアドレス>> prompt for credentials:i:0 alternate shell:s:rdpinit.exe remoteapplicationmode:i:1 remoteapplicationname:s:<<アプリケーション名>> remoteapplicationprogram:s:||<<公開名>> redirectclipboard:i:1 redirectprinters:i:0 redirectcomports:i:0 redirectsmartcards:i:0 redirectposdevices:i:0 redirectdrives:i:0 drivestoredirect:s: !!!参考 * RemoteApp for Hyper-V(XP) ** http://www.vwnet.jp/Windows/WS08R2/RemoteAppForHyper-V/XpRemoteApp.htm * Windows Server 2012 リモート デスクトップ環境の構成について - Ask CORE ** http://blogs.technet.com/b/askcorejp/archive/2012/12/28/windows-server-2012.aspx * RemoteApp の動作について - Ask CORE - Site Home - TechNet Blogs ** http://blogs.technet.com/b/askcorejp/archive/2010/05/28/remoteapp.aspx