Windows Server 2008 R2 + Citrix XenApp 6.5の環境をESXi上に構築しています。これにグループポリシーを使用して移動ユーザープロファイルを実装しています。この環境でC:\Users配下に”.000″や”.001″というフォルダーがどんどん蓄積する問題に遭遇しました。未来の自分が同じ問題に直面した時にすぐ解決できるようにこの記事を残しておきます。
事象
移動ユーザープロファイル構成にした場合でも、C:\Users にユーザープロファイルフォルダーが生成されます。初めてログオンするユーザーはユーザープロファイルがないため、デフォルトユーザープロファイルから生成されます。移動ユーザープロファイルがあるユーザーは、ユーザープロファイルの保存場所(ファイルサーバーなど)から、C:\Users 配下にプロファイルがコピーされます。
ユーザーがログオフする際に、C:\Users に生成されたローカルキャッシュを削除するか、しないかをグループポリシーで設定することが出来ます。この事象は、ユーザーがログオフした後にユーザープロファイルのローカルキャッシュを削除する様に設定した環境で発生します。
本来であればC:¥Usersに生成されたユーザー毎のフォルダーは、ユーザーがログオする際に削除されます。しかしこの事象が発生する場合、”%username%.%domain%.000″や”%username%.%domain%.001″というネーミングルールのフォルダがどんどん蓄積してしまいます。
Windows7やWindows Server 2008 R2はHotfixが用意されている
そんなトラブルを解決するHotfix「古いユーザー プロファイル フォルダーは、Windows 7 または Windows Server 2008 R2 で完全に削除されません。」を発見しました。このナレッジには以下の記載があります。
ユーザープロファイルサービス(Profsvc.dll)とWindows Searchサービス(SearchIndexer.exe)の間の競合状態が原因で発生します
Stale user profile folders are not deleted completely in Windows 7 or in Windows Server 2008 R2
しかし、Hotfixを適用してみましたが問題は改善しませんでした。
Hotfixをヒントにフォルダーに残存するゴミを調べる
ユーザーログオフ時にユーザープロファイル内にある「何か」が正しく削除されず、残存してしまう事が問題の原因と考えられます。では何が残ってるのかを確かめるため、
“%username%.%domain%.000″の中を見てみたところ、”Application Data\VMware\hgfs.dat” というファイルが残存していることを確認しました。
VMwareToolsの設定が原因だった
”Application Data\VMware\hgfs.dat”についてググってみたところ、VMwaretoolsが生成するファイルであることが分かりました。「Windows guest cannot update hgfs.dat or vmhgs.dat」(2021現在リンク先が消失していたのでリンクを解除しました)
また、Citrixのナレッジでもこの問題の記載を発見しました。「Profile Manager does not Delete the Local Profile when using VMWare Hosts」
対策方法
レジストリを修正してhgfs.datを生成しない様にすることで対策が可能です。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
“ProviderOrder”キーの値に「hgfs」「vmhgs」「vmhgfs」などの記述があれば削除します。
たとえば、キーにLanmanWorkstation、hgfsなどの値が含まれている場合は、値をLanmanWorkstationに変更します。
https://support.citrix.com/article/CTX133070
レジストリ設定後にOSを再起動すれば設定が反映します。
再発と恒久対策
上記の対策を実施しても、しばらくすると問題が再発することが分かりました。上記レジストリから「hgfs」「vmhgs」「vmhgfs」を削除しても、VMwareToolsが適時エントリを追加してしまうようです。
VMwate Toolsのインストール時にフルインストールした場合に追加される「ファイル共有(ホスト-ゲスト間のファイル共有)」機能が原因です。XenApp環境では基本的にこの機能は使用することが無いと思いますので、ファイル共有機能をアンインストールすれば解決します。
今回はVMware Toolsをアンインストールし、ファイル共有機能を削除した状態で再インストールしいて回避しました。
コメント