ユーザー プロファイル ディスク使用時に 一部メニューが英語表記になってしまう事象について

こんにちは。Windows プラットフォーム サポートの今入です。

Windows Server 2012 R2 環境において、リモート デスクトップ サービスを展開しており、ユーザー プロファイル ディスク (UPD) を使用している環境で、スタート メニューやコンテキスト メニューの一部が英語表記になってしまう事象があります。

英語表記になる箇所は、以下の通りです。

  • [コンテキスト メニュー] – [送る] 内の一部項目
  • [スタート メニュー] – [すべてのアプリ] – [Windows アクセサリ] の一部
  • [スタート メニュー] – [すべてのアプリ] – [Windows 簡単操作]
  • [スタート メニュー] – [すべてのアプリ] – [Windows システム ツール] の一部
01 02

今回は、この英語表記になってしまう事象の原因と対処方法について、解説します。

  1. ユーザー プロファイル ディスクについて
  2. 原因
  3. 対処方法

 

ユーザー プロファイル ディスクについて


まず、ユーザー プロファイル ディスクについて、簡単に紹介します。

ユーザー プロファイル ディスクは、Windows Server 2012 以降で使用できるようになりました。

これまで、複数のセッション ホストにログオンをする環境において、共有のユーザー プロファイルを使用するために、移動ユーザー プロファイルを使用していました。

しかし、移動ユーザー プロファイルは、ログオン/ログオフ時にプロファイル データをコピーする必要があり、プロファイルが大きくなればなるほど、コピーに時間もかかり、ネットワークへの負荷やログオン/ログオフ遅延が発生していました。

そこで、.vhdx 形式のイメージ ディスクを用いることで、一つのディスクとして管理できるようになりました。イメージ ディスクはマウントすることができ、ディスクのマウントによって、全てのデータをコピーすることなく、使用するデータを必要な時にコピー、書き込みを行うことで、ログオン遅延の解消や特定の時間帯 (朝、夕方等) のネットワーク負荷の軽減を実現しました。

リモート デスクトップ サービスで、ユーザー プロファイル ディスクを使用する場合は、[サーバー マネージャー] – [リモート デスクトップ サービス] – [コレクション] – [<コレクション名>] – [プロパティの編集] から、[ユーザー プロファイル ディスク] の項目で設定を行います。

03

この設定を行うことで、コレクションに参加しているセッション ホスト サーバーに接続を行うユーザーは、ユーザー プロファイル ディスクを使用できます。

ユーザー プロファイル ディスクの設定を行うと、保存先に UVHD-template.vhdx が作成されます。
これは、テンプレート プロファイルとなり、ユーザーの初回ログオン時に、この UVHD-template.vhdx をコピーして各ユーザーの VHD ファイルを作成します。
保存先には、”UVHD-<ユーザーの SID>” の形で、ユーザー プロファイル ディスクが作成され、次回以降この VHD ファイルをマウントして使用します。

04

 

原因


今回問題となっている 一部メニューの表記が英語になる 事象の原因は、各ユーザーの UPD 作成時にあります。各ユーザーの UPD 作成時は、先ほどもお伝えした通り、UVHD-template.vhdx からコピーを行い、作成します。このコピーの際、必要な “属性値” がコピーされないことによって、事象が発生します。

原因の説明にあたって、まずは日本語化の仕組みについて解説します。
皆さんが Windows を使用している時に、ふとこのようなことを思ったことはないでしょうか。

「エクスプローラーで見ると日本語なのに、ファイルのパスは英語になっている」

その通りです。実際確認すると、[デスクトップ] や [ドキュメント] 等は、以下のように異なっています。

05

Windows は、世界中の様々な言語で使用されています。しかし、各言語によってファイル パスが異なっていると、同じ処理をするにも、各言語でファイル パスを書き換えたものを使わないといけなくなってしまいます。
そのようなことを避けるために、ファイル パスは同じでも表記のみ各言語に変更する という仕組みが採用されています。この各言語への変更を管理しているのが “Desktop.ini” ファイルです。

Desktop.ini は、フォルダー名の表示言語やフォルダーのアイコン情報などを保持しています。
実際に今回、事象が発生する [コンテキスト メニュー] – [送る] の Desktop.ini を見てみましょう。
※Desktop.ini は OS で保護されたファイルなので、既定では表示されません。

06

[エクスプローラー] では、日本語表記になっており、[コマンド プロンプト] では、英語表記になっています。
このディレクトリ内の 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 をカスタマイズします。

  1. まず、正常に日本語表記になっている環境 (例えば、UPD を使用していない環境) にログオンします。
    ※できるだけ、ソフトウェアのインストールやカスタマイズのされていないユーザーをご利用ください。
    ※同じ OS のバージョンをご利用ください。

  2. 冒頭で記載した 4 つの項目について、正常に日本語表記になっていることを確認します。

  3. そのユーザーで以下の場所を [エクスプローラー] で開きます。

     %USERPROFILE%\AppData\Roaming\Microsoft\Windows
    
  4. 以下のフォルダーを抽出し、UPD を格納しているサーバーへ配置します。
    ・SendTo
    ・スタート メニュー

  5. UPD を格納しているサーバーへ、管理者権限のあるユーザーでログオンします。

  6. UPD の格納フォルダーを [エクスプローラー] で開きます。

  7. "UVHD-template.vhdx" を右クリックし、[マウント] をクリックします。
    07

  8. UVHD-template.vhdx がマウントされるので、以下のフォルダーを作成します。

     [AppData]
     - [Roaming]
      - [Microsoft]
       - [Windows]
    

    08

  9. 手順 8. で作成した AppData\Roaming\Microsoft\Windows\ 内に、手順 4. でコピーした [SendTo] と [スタート メニュー] のフォルダーを配置します。
    09

  10. [エクスプローラー] より、マウントした UVHD-template.vhdx を右クリックし、[取り出し] をクリックします。
    10

  11. 新規ユーザーで UPD 環境にログオンを行い、正常に日本語表記になっているか、確認します。

■ 既に UPD が作成されているユーザー

既に UPD が作成されているユーザーについては、[送る] は属性値の付与のみで改善されますが、[スタート メニュー] については、残念ながら属性値の付与のみでは改善されません。
[送る] と [スタート メニュー] に分けて手順を説明します。

---- [送る] ----

  1. 事象が発生しているユーザーでログオンします。

  2. [コマンド プロンプト] を起動します。

  3. 以下のコマンドを実行し、"読み取り専用" 属性を付与します。

     > attrib +R %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
    
  4. 念のため、以下のコマンドで、正しく属性が付与されていることを確認します。

     > attrib %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
         R       C:\Users\test01\AppData\Roaming\Microsoft\Windows\SendTo
    

    11

  5. ユーザーをログオフし、再ログオン後、日本語化されていることを確認します。
    12

---- [スタート メニュー] ----

  1. 事象が発生しているユーザーでログオンします。

  2. [コマンド プロンプト] を起動します。

  3. 以下のコマンドを実行し、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"
    
  4. 念のため、以下のコマンドで、正しく属性が付与されていることを確認します。

     > 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
    

    13

  5. [エクスプローラー] で以下の場所を開きます

     %USERPROFILE%\AppData\Roaming\Microsoft\Windows
    
  6. [スタート メニュー] – [プログラム] 内の以下のフォルダーが、日本語表記になっていることを確認します。
    ・ Windows アクセサリ (英語表記: Accessories)
    ・ Windows システム ツール (英語表記: System Tools)
    ・ Windows 簡単操作 (英語表記: Accessibility)

    属性付与前 属性付与後
    14_before 14_after
  7. %USERPROFILE%\AppData\Roaming\Microsoft\Windows にある [スタート メニュー] フォルダーを、任意の場所にコピーします。
    15

  8. コピー終了後、%USERPROFILE%\AppData\Roaming\Microsoft\Windows 内の [スタート メニュー] フォルダーを削除します。
    ※[スタート メニュー] フォルダーの削除は、[Shift] + [Del] キーを押して、完全に削除してください。
    右クリック – [削除] をされた場合は、[ごみ箱] にて [ごみ箱を空にする] を実施してください。

  9. 手順 6. で退避させた [スタート メニュー] フォルダーを、%USERPROFILE%\AppData\Roaming\Microsoft\Windows に配置します。
    16

  10. ユーザーをログオフし、再ログオン後、日本語化されていることを確認します。
    17

 

以上が、日本語表記に戻す手順となります。