ユーザー プロファイル ディスク使用時に 一部メニューが英語表記になってしまう事象について
こんにちは。Windows プラットフォーム サポートの今入です。
Windows Server 2012 R2 環境において、リモート デスクトップ サービスを展開しており、ユーザー プロファイル ディスク (UPD) を使用している環境で、スタート メニューやコンテキスト メニューの一部が英語表記になってしまう事象があります。
英語表記になる箇所は、以下の通りです。
- [コンテキスト メニュー] – [送る] 内の一部項目
- [スタート メニュー] – [すべてのアプリ] – [Windows アクセサリ] の一部
- [スタート メニュー] – [すべてのアプリ] – [Windows 簡単操作]
- [スタート メニュー] – [すべてのアプリ] – [Windows システム ツール] の一部
今回は、この英語表記になってしまう事象の原因と対処方法について、解説します。
ユーザー プロファイル ディスクについて
まず、ユーザー プロファイル ディスクについて、簡単に紹介します。
ユーザー プロファイル ディスクは、Windows Server 2012 以降で使用できるようになりました。
これまで、複数のセッション ホストにログオンをする環境において、共有のユーザー プロファイルを使用するために、移動ユーザー プロファイルを使用していました。
しかし、移動ユーザー プロファイルは、ログオン/ログオフ時にプロファイル データをコピーする必要があり、プロファイルが大きくなればなるほど、コピーに時間もかかり、ネットワークへの負荷やログオン/ログオフ遅延が発生していました。
そこで、.vhdx 形式のイメージ ディスクを用いることで、一つのディスクとして管理できるようになりました。イメージ ディスクはマウントすることができ、ディスクのマウントによって、全てのデータをコピーすることなく、使用するデータを必要な時にコピー、書き込みを行うことで、ログオン遅延の解消や特定の時間帯 (朝、夕方等) のネットワーク負荷の軽減を実現しました。
リモート デスクトップ サービスで、ユーザー プロファイル ディスクを使用する場合は、[サーバー マネージャー] – [リモート デスクトップ サービス] – [コレクション] – [<コレクション名>] – [プロパティの編集] から、[ユーザー プロファイル ディスク] の項目で設定を行います。
この設定を行うことで、コレクションに参加しているセッション ホスト サーバーに接続を行うユーザーは、ユーザー プロファイル ディスクを使用できます。
ユーザー プロファイル ディスクの設定を行うと、保存先に UVHD-template.vhdx が作成されます。
これは、テンプレート プロファイルとなり、ユーザーの初回ログオン時に、この UVHD-template.vhdx をコピーして各ユーザーの VHD ファイルを作成します。
保存先には、”UVHD-<ユーザーの SID>” の形で、ユーザー プロファイル ディスクが作成され、次回以降この VHD ファイルをマウントして使用します。
原因
今回問題となっている 一部メニューの表記が英語になる 事象の原因は、各ユーザーの UPD 作成時にあります。各ユーザーの UPD 作成時は、先ほどもお伝えした通り、UVHD-template.vhdx からコピーを行い、作成します。このコピーの際、必要な “属性値” がコピーされないことによって、事象が発生します。
原因の説明にあたって、まずは日本語化の仕組みについて解説します。
皆さんが Windows を使用している時に、ふとこのようなことを思ったことはないでしょうか。
「エクスプローラーで見ると日本語なのに、ファイルのパスは英語になっている」
その通りです。実際確認すると、[デスクトップ] や [ドキュメント] 等は、以下のように異なっています。
Windows は、世界中の様々な言語で使用されています。しかし、各言語によってファイル パスが異なっていると、同じ処理をするにも、各言語でファイル パスを書き換えたものを使わないといけなくなってしまいます。
そのようなことを避けるために、ファイル パスは同じでも表記のみ各言語に変更する という仕組みが採用されています。この各言語への変更を管理しているのが “Desktop.ini” ファイルです。
Desktop.ini は、フォルダー名の表示言語やフォルダーのアイコン情報などを保持しています。
実際に今回、事象が発生する [コンテキスト メニュー] – [送る] の Desktop.ini を見てみましょう。
※Desktop.ini は OS で保護されたファイルなので、既定では表示されません。
[エクスプローラー] では、日本語表記になっており、[コマンド プロンプト] では、英語表記になっています。
このディレクトリ内の Desktop.ini を見てみると、”[LocalizeFileNames]” という項目があり、その下に各フォルダー名に対し、様々なパラメーターが書かれています。
この Desktop.ini の設定により、英語表記と日本語表記の両方を保持できる仕組みになっています。
ちなみに、試しにこの Desktop.ini を削除すると、英語表記に戻ってしまいます。
※Desktop.ini の削除は推奨されないため、削除しないでください
このことから、今回事象が発生した原因は、この Desktop.ini が正しく読み込まれていないということが考えられます。
では、正しく読み込まれない原因はどこにあるのでしょうか。
正常に日本語表記となっている環境と、事象が発生する環境でどの点が違うかを確認すると、Desktop.ini が格納されているフォルダーの属性値が異なっています。
属性値を確認する attrib コマンドで確認すると、このようになります。
正常な環境
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows>attrib SendTo
R C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib Accessibility
R C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib Accessories
R C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib "System Tools"
R C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
事象が発生している環境
C:\Users\test01\AppData\Roaming\Microsoft\Windows>attrib SendTo
C:\Users\test01\AppData\Roaming\Microsoft\Windows\SendTo
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib Accessibility
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib Accessories
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs>attrib "System Tools"
C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
今回事象が確認できているフォルダーに対して、”R (読み取り専用) 属性” が付与されていません。
これは、UVHD-template.vhdx から UPD を作成する際に、属性値を正しくコピーできなかったことが原因となっております。属性値が付与されなかったため、正しく Desktop.ini が解釈されず、事象が発生しております。
対処方法
既に UPD が作成されているユーザー と UPD が作成されていないユーザーで、対処方法が異なります。
■ UPD が作成されていないユーザー
今後、サーバーへ接続し、UPD を作成するユーザーについては、テンプレートとなる UVHD-template.vhdx に対処を行うことで、事象が改善されます。
以下の手順で、UVHD-template.vhdx をカスタマイズします。
まず、正常に日本語表記になっている環境 (例えば、UPD を使用していない環境) にログオンします。
※できるだけ、ソフトウェアのインストールやカスタマイズのされていないユーザーをご利用ください。
※同じ OS のバージョンをご利用ください。冒頭で記載した 4 つの項目について、正常に日本語表記になっていることを確認します。
そのユーザーで以下の場所を [エクスプローラー] で開きます。
%USERPROFILE%\AppData\Roaming\Microsoft\Windows
以下のフォルダーを抽出し、UPD を格納しているサーバーへ配置します。
・SendTo
・スタート メニューUPD を格納しているサーバーへ、管理者権限のあるユーザーでログオンします。
UPD の格納フォルダーを [エクスプローラー] で開きます。
UVHD-template.vhdx がマウントされるので、以下のフォルダーを作成します。
[AppData] - [Roaming] - [Microsoft] - [Windows]
手順 8. で作成した AppData\Roaming\Microsoft\Windows\ 内に、手順 4. でコピーした [SendTo] と [スタート メニュー] のフォルダーを配置します。
[エクスプローラー] より、マウントした UVHD-template.vhdx を右クリックし、[取り出し] をクリックします。
新規ユーザーで UPD 環境にログオンを行い、正常に日本語表記になっているか、確認します。
■ 既に UPD が作成されているユーザー
既に UPD が作成されているユーザーについては、[送る] は属性値の付与のみで改善されますが、[スタート メニュー] については、残念ながら属性値の付与のみでは改善されません。
[送る] と [スタート メニュー] に分けて手順を説明します。
---- [送る] ----
事象が発生しているユーザーでログオンします。
[コマンド プロンプト] を起動します。
以下のコマンドを実行し、"読み取り専用" 属性を付与します。
> attrib +R %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
念のため、以下のコマンドで、正しく属性が付与されていることを確認します。
> attrib %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo R C:\Users\test01\AppData\Roaming\Microsoft\Windows\SendTo
---- [スタート メニュー] ----
事象が発生しているユーザーでログオンします。
[コマンド プロンプト] を起動します。
以下のコマンドを実行し、3 つのフォルダーに対し、"読み取り専用" 属性を付与します。
> attrib +R "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility" > attrib +R "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories" > attrib +R "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools"
念のため、以下のコマンドで、正しく属性が付与されていることを確認します。
> attrib "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility" R C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility > attrib "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories" R C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories > attrib "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools" R C:\Users\test01\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
[エクスプローラー] で以下の場所を開きます
%USERPROFILE%\AppData\Roaming\Microsoft\Windows
[スタート メニュー] – [プログラム] 内の以下のフォルダーが、日本語表記になっていることを確認します。
・ Windows アクセサリ (英語表記: Accessories)
・ Windows システム ツール (英語表記: System Tools)
・ Windows 簡単操作 (英語表記: Accessibility)属性付与前 属性付与後 %USERPROFILE%\AppData\Roaming\Microsoft\Windows にある [スタート メニュー] フォルダーを、任意の場所にコピーします。
コピー終了後、%USERPROFILE%\AppData\Roaming\Microsoft\Windows 内の [スタート メニュー] フォルダーを削除します。
※[スタート メニュー] フォルダーの削除は、[Shift] + [Del] キーを押して、完全に削除してください。
右クリック – [削除] をされた場合は、[ごみ箱] にて [ごみ箱を空にする] を実施してください。手順 6. で退避させた [スタート メニュー] フォルダーを、%USERPROFILE%\AppData\Roaming\Microsoft\Windows に配置します。
以上が、日本語表記に戻す手順となります。