none
別ホストのIEをwindows xp modeのようにシームレスに起動できないでしょうか? RRS feed

  • 質問

  • 初めてWindows 7 フォーラムに投稿させていただきます。

    windows 7 ultimate x64 + windows xp modeでxpのInternet Explorerがwin7からシームレスに起動できるのに感心しました。

    質問ですが、これと同じようなことを自ホストの仮想PCのアプリではなく、リモートのxpのウィンドウを貼り付けることは出来ないでしょうか?ネットワークの向こうにxpを何台かインストールしていて、(vmware4.0上の仮想PC)各々違ったバージョンのIEをインストールしています。

    開発中のWEBアプリがサポートするIEのバージョンが各々違うため、現在はテストするたびにリモートデスクトップなどで入ってIEで動作を確認していますが、自分PCにウィンドウ単位で貼り付けられるととても便利です。多分やれるんじゃないかと思っているのですが・・・・今の所、この仕組みはxp側に何が存在して、受け(win7)側に何が存在するから、こんな事が出来ているのか理解していなくて・・・

     

    ご存知の方は、リンクなどでもよいので教えてください。

    よろしくお願いします。 




    2011年9月11日 17:44

回答

  • 調べると結構な数の blog 記事がヒットするはずなので、以下はすべてそういった blog 記事などに書いてあったことを勝手にまとめたものです。

    XP mode で使用されているシームレスなアプリケーションの呼び出しは RemoteApp という技術を使用しており、リモートデスクトップ 6.1 と Windows Server 2008 (R2 からだっけ?) から利用できるようになっています。

    RemoteApp は、

    • Windows Server 側からシームレスに呼び出しが可能なアプリケーションの一覧を配信
    • Windows Server に接続したクライアントのスタートメニューに受け取ったアプリケーションを一覧表示
    • アプリケーション起動で、リモートデスクトップによってシームレスなウィンドウ表示

    というかんじで提供されているわけです。これに対して XP mode では、

    • Windows Virtual PC から RSS(?) によってスタートメニューフォルダの差分を配信
    • スタートメニューへ RSS(?) にて受け取ったアプリケーションを一覧表示
    • アプリケーション起動で、リモートデスクトップによってシームレスなウィンドウ表示

    という形で実現されているそうです。(msdn blog あたりより)

    どちらの場合もアクセス権制御等の背景的な処理を除くと、

    1. リモート側に RemoteApp サービスが稼働している
    2. リモート側から RemoteApp サービスのアプリケーション一覧を配信されている
    3. ローカル側にて配信されたアプリケーション一覧がスタートメニューに表示される
    4. ローカル側にて配信されたアプリケーションを起動すると、リモートデスクトップの機能によってリモート側のアプリケーションがシームレスに表示される

    というかたちになっています。

    4については、リモートデスクトップ クライアントの機能で、クライアントが Windows 7 なら最初から解決しているので問題ありません。Windows XP/Vista の場合はきちんと Windows Update を適用していれば同様に問題ありません。

    1については、前回書いたように WinXP なら KB961742、Vista は KB961741 を適用するだけで、リモートデスクトップを許可していれば RemoteApp サービスとしても機能するようになります。

    残る2と3については、前回の投稿に書いたように全部手動でやることになります。

    まず、2についてサーバ側となる XP/Vista にてレジストリ HKEY_LOCAL_MACHINE に

    \SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList\Applications

    というキーと、App1 というサブキーを作成して、

    CommandLineSetting      0
    RequiredCommandLine    ""
    IconIndex                      0
    IconPath                        "C:\WINDOWS\NOTEPAD.EXE"
    Path                              "C:\WINDOWS\NOTEPAD.EXE"
    ShortPath                      "C:\WINDOWS\NOTEPAD.EXE"
    VPath                            "C:\WINDOWS\NOTEPAD.EXE"
    ShowInTSWA                 1
    Name                            "メモ帳"
    SecurityDescriptor          ""
    
    


    という名前と DWORD値 と文字列値を設定します。これで App1 という名前でメモ帳が外部から呼び出せるようになります。

    次に3について、上記の設定を配信・受信する仕組みがないので

    1. 対象コンピュータに普通にリモートデスクトップ接続を行い
    2. 資格情報を保存してパスワードを聞かれなくして
    3. [名前を付けて保存] で rdp ファイルを作成
    4. テキストエディタ等で rdp ファイルを開いて
    RemoteApplicationMode:i:1
    RemoteApplicationName:s:メモ帳
    RemoteApplicationProgram:s:||App1
    RemoteApplicationCmdline:s:
    AlternateShell:s:rdpinit.exe
    DisableRemoteAppCapsCheck:i:1
    
    


    と追記します。あとはこの RDP ファイルを開けばリモートの App1 で登録されているアプリケーションであるメモ帳がシームレスに起動するはずです。 

    • 回答の候補に設定 Jitta 2011年9月26日 1:34
    • 回答としてマーク 服部清次 2011年9月27日 4:51
    2011年9月22日 10:54
  • このご質問、大変興味があります。

    ところで、にっきーさんのご質問は、リモート デスクトップを対象とされているのに対し、K.Takaokaさんのご回答にある KB961742 (Vista KB961741)には、「Windows Virtual PC を使用して実行できるようになります。この修正プログラムは、Windows XP SP3 の仮想マシンにインストールする必要があります」と書かれています。にっきーさんのご質問の対象とは違うように感じるのですが、いかがでしょうか。

    にっきーさんのご質問の背景は、次のようなものだと理解しています。
    複数のバージョンの IE を使用したい。
    しかし、1つの OS にインストール出来る IE は1つのバージョンだけ。
    Windows 7 では XP Mode にもうひとつ IE をインストールすることが出来る。
    しかし、ホストの Windows 7 と合わせても2つまでである。(あるいは、XP 上の IE で動作確認をしたい)
    そこで、複数の PC を用意して、リモート デスクトップで接続することとした。
    しかし、リモート デスクトップでは、接続の後、接続先の OS で IE を起動することとなり、面倒である。
    XP Mode では、ホスト Windows 7 のスタート メニューから直接起動できるが、リモート デスクトップに同様の仕掛けはないか。

    K.Takaokaさんのご回答を見て、リモート デスクトップのオプションを調べると、「プログラム」タブに「接続時に次のプログラムを起動する」とあります。Vista から Windows 7 への接続で、Windows 7 内の Visual Studio をフルパスで指定してみたのですが、起動しないようでした。
    また、KB にあります「RemoteApp」と言う言葉で検索をかけると、Windows Server のターミナル・サービスの記事がいくつか出てきました。ターミナル・サービスのアプリケーション配信サービスであれば、にっきーさんのご要望に沿ったことが出来ることは、確認しています。ただし、CAL が必要になります。有効な MSDN サブスクリプションをお持ちなら、120日間の評価期間があります。サブスクリプションで CAL を入手することは出来ませんが、サーバーの再インストールをすれば、ふたたび120日間の評価期間が始まります(そのように使えと書いてある)。

    また、リモート デスクトップであれば、例えば、スタートアップに IE を登録しておくことで、手間を接続のみに減らすことが出来るのではないでしょうか。ついでに、RDS ファイルに資格情報を保存しておけば、ダブルクリックのみで接続も出来ます。


    Jitta@わんくま同盟
    • 回答としてマーク 服部清次 2011年9月21日 8:09
    2011年9月14日 14:05

すべての返信

  • リモート側の WinXP に KB961742 (Vista は KB961741) を適用すれば可能です。

    XP-Mode と異なり、リモート側の XP のプログラムを Win7 側に表示することはできないので、RDP ファイルを作成して手動でショートカット等を作成することになります。

    • 回答の候補に設定 服部清次 2011年9月21日 8:09
    2011年9月12日 0:25
  • このご質問、大変興味があります。

    ところで、にっきーさんのご質問は、リモート デスクトップを対象とされているのに対し、K.Takaokaさんのご回答にある KB961742 (Vista KB961741)には、「Windows Virtual PC を使用して実行できるようになります。この修正プログラムは、Windows XP SP3 の仮想マシンにインストールする必要があります」と書かれています。にっきーさんのご質問の対象とは違うように感じるのですが、いかがでしょうか。

    にっきーさんのご質問の背景は、次のようなものだと理解しています。
    複数のバージョンの IE を使用したい。
    しかし、1つの OS にインストール出来る IE は1つのバージョンだけ。
    Windows 7 では XP Mode にもうひとつ IE をインストールすることが出来る。
    しかし、ホストの Windows 7 と合わせても2つまでである。(あるいは、XP 上の IE で動作確認をしたい)
    そこで、複数の PC を用意して、リモート デスクトップで接続することとした。
    しかし、リモート デスクトップでは、接続の後、接続先の OS で IE を起動することとなり、面倒である。
    XP Mode では、ホスト Windows 7 のスタート メニューから直接起動できるが、リモート デスクトップに同様の仕掛けはないか。

    K.Takaokaさんのご回答を見て、リモート デスクトップのオプションを調べると、「プログラム」タブに「接続時に次のプログラムを起動する」とあります。Vista から Windows 7 への接続で、Windows 7 内の Visual Studio をフルパスで指定してみたのですが、起動しないようでした。
    また、KB にあります「RemoteApp」と言う言葉で検索をかけると、Windows Server のターミナル・サービスの記事がいくつか出てきました。ターミナル・サービスのアプリケーション配信サービスであれば、にっきーさんのご要望に沿ったことが出来ることは、確認しています。ただし、CAL が必要になります。有効な MSDN サブスクリプションをお持ちなら、120日間の評価期間があります。サブスクリプションで CAL を入手することは出来ませんが、サーバーの再インストールをすれば、ふたたび120日間の評価期間が始まります(そのように使えと書いてある)。

    また、リモート デスクトップであれば、例えば、スタートアップに IE を登録しておくことで、手間を接続のみに減らすことが出来るのではないでしょうか。ついでに、RDS ファイルに資格情報を保存しておけば、ダブルクリックのみで接続も出来ます。


    Jitta@わんくま同盟
    • 回答としてマーク 服部清次 2011年9月21日 8:09
    2011年9月14日 14:05
  • にっきー さん、

    こんにちは。
    フォーラム オペレーターの服部 清次です。

    にっきー さんがこちらの質問を投稿されてから少し経ちましたが、
    Jitta さんの回答はご確認いただけましたでしょうか?

    今回、1つの情報として、Jitta さんの回答を参考にしていただけるのではないかと思いましたので、
    勝手ながら、私の方でいったん [回答としてマーク] させていただきました。

    また何か疑問などがありましたら、ぜひ TechNet フォーラムをご活用ください。
    今後ともよろしくお願いします!
    それでは、また。


    __________________________________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    2011年9月21日 8:10
  • 調べると結構な数の blog 記事がヒットするはずなので、以下はすべてそういった blog 記事などに書いてあったことを勝手にまとめたものです。

    XP mode で使用されているシームレスなアプリケーションの呼び出しは RemoteApp という技術を使用しており、リモートデスクトップ 6.1 と Windows Server 2008 (R2 からだっけ?) から利用できるようになっています。

    RemoteApp は、

    • Windows Server 側からシームレスに呼び出しが可能なアプリケーションの一覧を配信
    • Windows Server に接続したクライアントのスタートメニューに受け取ったアプリケーションを一覧表示
    • アプリケーション起動で、リモートデスクトップによってシームレスなウィンドウ表示

    というかんじで提供されているわけです。これに対して XP mode では、

    • Windows Virtual PC から RSS(?) によってスタートメニューフォルダの差分を配信
    • スタートメニューへ RSS(?) にて受け取ったアプリケーションを一覧表示
    • アプリケーション起動で、リモートデスクトップによってシームレスなウィンドウ表示

    という形で実現されているそうです。(msdn blog あたりより)

    どちらの場合もアクセス権制御等の背景的な処理を除くと、

    1. リモート側に RemoteApp サービスが稼働している
    2. リモート側から RemoteApp サービスのアプリケーション一覧を配信されている
    3. ローカル側にて配信されたアプリケーション一覧がスタートメニューに表示される
    4. ローカル側にて配信されたアプリケーションを起動すると、リモートデスクトップの機能によってリモート側のアプリケーションがシームレスに表示される

    というかたちになっています。

    4については、リモートデスクトップ クライアントの機能で、クライアントが Windows 7 なら最初から解決しているので問題ありません。Windows XP/Vista の場合はきちんと Windows Update を適用していれば同様に問題ありません。

    1については、前回書いたように WinXP なら KB961742、Vista は KB961741 を適用するだけで、リモートデスクトップを許可していれば RemoteApp サービスとしても機能するようになります。

    残る2と3については、前回の投稿に書いたように全部手動でやることになります。

    まず、2についてサーバ側となる XP/Vista にてレジストリ HKEY_LOCAL_MACHINE に

    \SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList\Applications

    というキーと、App1 というサブキーを作成して、

    CommandLineSetting      0
    RequiredCommandLine    ""
    IconIndex                      0
    IconPath                        "C:\WINDOWS\NOTEPAD.EXE"
    Path                              "C:\WINDOWS\NOTEPAD.EXE"
    ShortPath                      "C:\WINDOWS\NOTEPAD.EXE"
    VPath                            "C:\WINDOWS\NOTEPAD.EXE"
    ShowInTSWA                 1
    Name                            "メモ帳"
    SecurityDescriptor          ""
    
    


    という名前と DWORD値 と文字列値を設定します。これで App1 という名前でメモ帳が外部から呼び出せるようになります。

    次に3について、上記の設定を配信・受信する仕組みがないので

    1. 対象コンピュータに普通にリモートデスクトップ接続を行い
    2. 資格情報を保存してパスワードを聞かれなくして
    3. [名前を付けて保存] で rdp ファイルを作成
    4. テキストエディタ等で rdp ファイルを開いて
    RemoteApplicationMode:i:1
    RemoteApplicationName:s:メモ帳
    RemoteApplicationProgram:s:||App1
    RemoteApplicationCmdline:s:
    AlternateShell:s:rdpinit.exe
    DisableRemoteAppCapsCheck:i:1
    
    


    と追記します。あとはこの RDP ファイルを開けばリモートの App1 で登録されているアプリケーションであるメモ帳がシームレスに起動するはずです。 

    • 回答の候補に設定 Jitta 2011年9月26日 1:34
    • 回答としてマーク 服部清次 2011年9月27日 4:51
    2011年9月22日 10:54
  • K.Takaokaさん、ありがとうございます。

    私の関心は「クライアント Windows が RemoteApp サーバーになるのか」という所だったのですが、「なる」ということですね。Windows 7 をホスト、Windows Vista をクライアントにして確認しました(私の関心事については、これで満足するので)。


    Jitta@わんくま同盟
    2011年9月26日 12:02
  • いくつか、些細な支障がありますね。

    • ログオフできない。
      該当するアプリケーションを終了しても、配信元の OS ではログオンしたままとなる。シャットダウンしようとすると、「ログオンしたままです」とのメッセージが出て焦った。
    • マルチ ディスプレイでの使用に注意。
      クライアントをマルチ ディスプレイで使用しているが、ホストにマルチ ディスプレイであることが通知されていない。このため、第2画面に移動させようとしても出来ない(ホストが Windows 7 なら、エアロ スナップが効いてしまう)。ホストがマルチ ディスプレイで、クライアントがシングルだとどうなるんだろう?

    Jitta@わんくま同盟
    2011年9月29日 13:08
  • ログオフされないのは RemoteApp の仕様ですよね? Windows XP Mode でも Windows Server 2008 R2 でも同様です。XPMode の場合、次のプログラムを素早く呼び出すためでしょうか? Windows Server 2008 R2 の場合、ログオフできたらスタートメニューからリモート アプリケーションが消えてクライアント側でログオフ/ログインしなおしになりそうです。

    マルチモニタは、リモートデスクトップの接続モード次第ではないでしょうか? やったことありませんが、通常のリモートデスクトップ接続と同じなら mstsc /span notepad.rdp とかしてみてはいかがでしょう?

    ※ /span は解像度違いや縦列に対応していないので、私は試しもしようと思いません

    ホスト側のマルチモニタ対応は、リモートデスクトップ 7.0 からなので、6.0 相当と思われる  KB961742 / KB961741 に期待するのは無理かと思います。(XPMode や、XPMode 相当の Vista 利用においても、Windows Virtual PC がそもそもマルチモニタ対応していませんので…USBとかのだとどうなるのかな…)

    2011年9月29日 16:38
  • >マルチ ディスプレイでの使用に注意。

    .rdp ファイルに

    span monitors:i:1
    use multimon:i:1

    の記述があればOKのようです。

    2012年8月22日 22:09