読者です 読者をやめる 読者になる 読者になる

treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

(1/2)RemoteAppがおすすめかも知れないシチュエーション(サーバ不要)

今日はRemoteAppについてご報告します。
前々からちょっとづつ使っていたのですが、Windows7Windows8(8.1)で挙動が違うことが分かりました。

RemoteAppってWindowsServerのHyper-Vでアプリ公開するヤツだよね?っというのは早計です。RemoteApp単体の技術であればPC同士や小規模インフラ、個人であっても便利に使えることができるのはご存知でしたか?

どんな時に使う?

会計ソフトのようなパッケージは1ライセンス1台で利用する形態が多いです。(ネットワーク版、という選択肢もありますが、コストがそれなりに掛かってしまうのが難点です。)
1ライセンスしかないので担当者が利用するPCにインストールしがちですが、これが落とし穴です。その担当者が配置転換や退職などでそのPCから別のPCに移行する必要が出てくるのですが、このとき移行方法は誰か知っていますか?データ移行後の確認は誰かできますか?と、なった際に、「誰もできないし知らない。」ということが状況としてあることが多いです。
ひっくり返りそうになりますが、これが現実です。
ひとまず、引継ぎ予定の担当者はPC2台使いとなりますが、そのうち2台使い分けが面倒になってこういいます。「私のPCに会計ソフトをインストールしてくれませんか?」と。でこのとき問題なのが前述のデータ移行のくだりです。ライセンスはお金を投入すればどうにでもなるのですが…。
これが1回で済めばいいのですが、担当者は何のタイミングで変わってしまうかわかりません。しかもその担当者が変わるごとにインストールとデータ移行の手間を要し作業負荷が掛かってしまいます。

今回は思い切って元PCをソフト専用PCとしてRemoteAppで参照する、という方法を提供しました。こうすると担当者が変わってもリモート参照用の接続ファイルを引き渡すだけで済みます。担当者がチョイチョイ変わるような環境であっても安心の引継ぎが可能です。(何せファイルのコピーだけですから)

準備:レジストリ登録とWindows Update

参照される側(RDPでアクセスされる側)の環境はOSがWindows7 Enterpriseです。一方参照する側(RDPでアクセスする側)のOSはWindows7ProfessionalとWindows8.1Professionalの2種類あります。ここで躓いてハマってしまいました。(詳しくは後述)
何事にも準備が寛容です。まずは参照される側(ホスト側、以後PC-Aやホスト側と表記します。)に設定を入れましょう。
設定は、レジストリキーを投入します。
----------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\IE8]
"CommandLineSetting"=dword:00000000
"IconIndex"=dword:00000000
"Path"=""C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe""
"VPath"=""C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe""
"ShowInTSWA"=dword:00000001
"Name"="Internet Explorer8"
----------------------------------------------
このようなファイルを作成して.regファイルとして保存し、ホストOSであるPC-Aで実行します。するとレジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\配下にRemoteAppでアクセス可能なアプリリストに指定したアプリケーションが追加されます。
図:HKLM配下のTerminal Server\TSAppAllowList\Applications\

f:id:treedown:20160111040159p:plain

レジストリエディタを開いた流れでその上流のキーを設定しておきましょう。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList\fDisabledAllowList
のキーの値を「0」から「1」に変更します。
レジストリ「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList」を開いて
「fDisabledAllowList」キーを右ペインで発見したらダブルクリックで数値変更です。
図:該当キー変更後の画面

f:id:treedown:20160111040211p:plain

この設定を怠った状態で後述するRDPファイルを生成して接続を試行したとしても、以下のようなエラーでRemoteApp接続はできません。
これが原因でRemoteApp接続が拒否される場合以下のエラーメッセージです。
----------------------------------------------
[Window Title]
RemoteApp のエラー

[Content]
RemoteApp プログラムを開始できません。

次の RemoteApp プログラムが許可されたプログラムの一覧にありません:
Internet Explorer8

サポートが必要な場合は、システム管理者に問い合わせてください。

[OK]
----------------------------------------------
ご注意を。

うまくいかなくていろいろやってしまったうちの一つ、WindowsUpdateでのオプションのアップデートも一応やっておきましょう。
図:オプションのアップデート履歴

f:id:treedown:20160111040236p:plain


重要なのはKB2830477、これがRDP8.1クライアントだったはずです。(Windows8以降はRDP8.1のため)

長くなってしまったので続きます。