シトリックス炎の掲示板 1日8,000アクセスの国内最大シトリックスコミュニティ

XenApp 7.15 LTSR でのドライブマッピング

りんこ 2019/02/25 15:56:03

下記のXenApp環境を新たに構築し、ドライブマッピングの設定をしました。
【XenApp環境】
 Windows Server 2016 Standard
 XenApp 7.15 LTSR
 ドライブ:C、E
【設定手順】
 ①レジストリエディタより「HKEY_LOCAL_MACHINESOFTWARECtrix」に移動し、
  「Citrix」を右クリック→新規→キーをクリックして名前を「UncLinks」に設定。
 ②「UncLinks」を選択→右側を右クリック→新規→DWORD(32ビット)値を
  クリックして名前を「UNCEnabled」に変更。
  値は初期値(0)にしておく。

以前の環境(*)でドライブマッピングを設定した時、
クライアントPC(C、D)で表示されるドライブは
 クライアントのCドライブ:Vドライブ
 クライアントのDドライブ:Uドライブ
と表示されていたのですが、
新環境では
 クライアントのCドライブ:Vドライブ
 クライアントのDドライブ:Dドライブ
のように「D」ドライブはそのまま「D」で表示されるようになりました。

【(*)以前のXenApp環境】
 Windows Server 2008R2 Standard
 XenApp 6.5
 ドライブ:C、E

またクライアントPCからファイルを保存する際に「U:」を入力すると、
「Eドライブにアクセスできない」旨のメッセージが出ます。


察するに以前は
 ・クライアントの「C」ドライブは「V」ドライブに、
  「D」ドライブは「U」ドライブに強制マッピングされる。
現在は
 ・クライアントの「C」ドライブはXenAppサーバーに「C」ドライブが存在するため、
  「V」ドライブにマッピング。
 ・クライアントの「D」ドライブはXenAppサーバーに「D」ドライブ存在しないため、
  そのまま「D」ドライブにマッピング。
 ・XenAppサーバーは「E」ドライブがあるためクライアントの「E」ドライブは「U」になるが、
  接続しているクライアントに「E」ドライブが無いためアクセス拒否のメッセージを表示。
のようなマッピングをしていると思われますが、
調べてもそのような記載が見つかりません。

新環境で以前と同様に
 ・クライアントの「C」ドライブは「V」ドライブに、
  「D」ドライブは「U」ドライブに強制マッピングされる。
ようにする方法はあるのでしょうか?

s 2019/02/26 11:10:50

動作については推測されている通りです。
その仕様は、こちらに記載されています
https://docs.citrix.com/ja-jp/receiver/windows/current-release/optimize/map-client-devices.html

ご認識の通り、そのレジストリを使用した場合などには
リダイレクトされるユーザクライアントのローカルドライブレターと
サーバーのローカルドライブレターが競合する場合がありえます。

この競合が生じた際、セッション上リダイレクトされたドライブに割り当てる
代替ドライブレターというものが、サーバーにVDAをインストールする時に
あらかじめ定義されています。

上のURLに記載がありますが、
>仮想デスクトップやアプリケーションをホストするサーバーに
>XenDesktopまたはXenAppをインストールするときに、
>クライアントドライブが自動的にマップされるサーバーの
>ドライブ文字のセットを設定できます。
>デフォルトでは、インストール時に、個々のハードディスク
>およびCDドライブに1文字ずつ、Vからのアルファベットで
>未使用のドライブ文字がマップされます

ご質問の環境では、サーバーにVDAをインストールする際、
「Cドライブ」に対して「(V:)」
「Eドライブ」に対して「(U:)」というマッピングが生成されます。
サーバー側に「Dドライブ」が存在しないため、
Dドライブに対しては代替マップが生成されません。

よって、リダイレクトされたユーザクライアントのローカルDドライブは
そのままセッション上でも「Dドライブ」になります。

以前のXenApp環境にDドライブが存在しなかったのであれば
現在と同じ挙動になるはずではあるのですが過去を見てもまぁ仕方がないので

解決方法としては、CDドライブでも小さなローカルドライブでもいいので
サーバー上にDドライブが存在している状態で
VDAをインストールしなおすことだと思います


以下余談
C→D→E というドライブに対して、V→U→T
と言うように、アルファベット逆順に代替マップが生成されるのは
単に「仕様」です
日本語翻訳版のDocumentでは省略されてたりしますが
英語版のDocumentではちゃんと「Vから逆順」と書いてあったりします

りんこ 2019/02/26 15:17:00

sさん、ありがとうございます。
理屈は理解できました。

下記、もしご存知でしたら教えてください。
(的外れな質問があるかもしれませんが、まだ知らないことがあること、
 英文が読めないことが大きな壁となっております)

> この競合が生じた際、セッション上リダイレクトされたドライブに割り当てる
> 代替ドライブレターというものが、サーバーにVDAをインストールする時に
> あらかじめ定義されています。
レジストリを設定してもVDAインストール時の定義が優先されるのでしょうか?

> その仕様は、こちらに記載されています
ここの記載は「Citrix Receiver for Windows 4.12」の内容ですが、
マッピングの仕様はXenApp(VDA)になるのでしょうか?

> 解決方法としては、CDドライブでも小さなローカルドライブでもいいので
> サーバー上にDドライブが存在している状態で
> VDAをインストールしなおすことだと思います
VDAの再インストールは
①「コントロールパネル」-「プログラムのアンインストール」
 -「Citrix 7.15 LTSR - Virtual Delivery Agent」をアンインストール。
②最初にVDAをインストールした手順と同じ手順でインストール。
③VDAインストール以降に実施した作業を再確認し、
 必要に応じて作業を再実施。
でいいでしょうか?
アンインストール・インストール作業の前後で何かしておくべき作業は
ありますでしょうか?

s 2019/02/26 17:12:23

簡単に言えば「UNCEnabled」というレジストリは

ユーザクライアントのローカルドライブを
仮想デスクトップ/アプリセッション上にリダイレクトさせる場合
ローカルと同じドライブレターが付けるようにする

という設定です(デフォルトだとそもそもドライブレターが付かないので)

そのように動いてほしいと設定したとしても、競合が生じる様であれば
サーバー(VDA)側による競合回避処理が優先されます


このドライブレターの仕様が、Receiverの仕様なのか
XenApp(VDA)の仕様なのかと言われれば
どちらかと言えばVDA側の仕様だと思いますが
両方合わせて、Citrix XenApp/XenDesktopの仕様です


VDAの再インストールは仰るように、普通にコンパネのプログラムの
一覧からアンインストールして、新規インストールの要領で
普通にインストールしなおしで良いです
アンインストール後に再起動ぐらいは挟んだ方が気持ちよいですけども

前後の作業として、コレしておかないと死ぬとか壊れるとかは概ねないですが
当然、一時的にユーザーはサーバーに接続できない状態になるわけなので
その旨(サービス提供中止)のアナウンスは必要ですし、
Studioから当該サーバーのメンテナンスモードを有効にしておく、
などが望ましいでしょう

デリバリーグループから削除、マシンカタログから削除、とかまでは
別にしなくても良いです。してもいいけど。

りんこ 2019/02/26 18:39:35

sさん、分かりやすい説明いただきありがとうございます。

レジストリを設定すると「C → V」「D → U」にマッピングする、
としていた私の間違いが分かりました。
仕様が理解できたことで今後に生かすことができます。

VDAの再インストールはサービス提供中止が必須になりますので、
現状と今後のことを踏まえて慎重に検討します。


> 両方合わせて、Citrix XenApp/XenDesktopの仕様です
そのとおりですね。愚問でした。


細かいところまでご指示いただき、
本当にありがとうございました。
  • ニックネーム
  • メール
  • 本文

Powerful & Beautiful

力強く、美しいシステムを。