Windows 365 Enterprise にてシステム ロケールを強制適用する

皆さん、こんにちは。

今回は、Windows 365 関連の記事となります。

Windows 365 は Windows 365 が GA (generally available) になった際、私が早起きして、いち早く記事掲載をしたことを今でもよく覚えています。なので、Windows 365 には非常に思い入れがあります。

今回はその Windows 365 を運用する中での TIPS を紹介したいと思います。


<概要>


Windows 365 環境下では、プロビジョニング ポリシーにて、接続対象の Windows デスクトップの [言語と地域] を設定できます。

しかしながら、この [言語と地域] を設定しても、Windows のシステム ロケールは変更されず、下記のスクリーン ショットのように、[英語 (米国)] のままです。

システム ロケールが [英語 (米国)] のままだと、アプリケーションによっては対応しておらず、インストールの際に文字化けしたり、動作に支障をきたす場合があります。一例をあげれば、ATOK インストールの際に影響を受けます。実際に、私は ATOK のインストールの際に文字化けが起こり、問題が発生しました。

そのため、Windows 365 環境を日本語環境で利用する場合は、システム ロケールも含めて変更することをお勧めします。しかしながら、特に大規模に Windows 365 環境を使用している場合、一台一台のマシンでシステム ロケールを変更するのは容易ではありません。今回は、Windows 365 環境のシステム ロケールを一括変更する方法を紹介したいと思います。


<対応方法>


今回紹介する方法は、Windows 365 を管理する Microsoft Intune の [スクリプトと修復] 機能を用いて、システム ロケールを変更する方法です。

Windows 365 は、マネージド システムでかつ、管理は Microsoft Intune を用いて行います。そのため、Microsoft Intune を用いてシステム ロケールを管理するのが適切かと思い、この方法を紹介します。

まずは、Microsoft Intune の [スクリプトと修復] 機能の簡単な紹介からしたいと思います。[スクリプトと修復] は、[プラットフォーム スクリプト] と呼ばれる、PowerShell スクリプトを各クライアントに配布する機能と、[修復] (プロアクティブな修復) と呼ばれる、指定した条件に満たない環境の設定や状態を修復する機能に分かれます。

今回は、[修復] を用いて、システム ロケールが [日本語 (日本)] になっていないものを修復したいと思います。

  1. Microsoft Intune 管理センターを開きます。
  2. [デバイス] > [デバイス管理] > [スクリプトと修復] を開きます。
  3. [修復] タブにて、[作成] を選択します。
  4. [カスタム スクリプトの作成] 画面の [基本] にて、[名前] 等を適宜設定します。
    名前 : Automatic change of System Locale (ja-JP)
    説明 : Script to automatic change the system locale to ja-JP
    For Windows 365
  5. [設定] にて、下記のように設定します。
    後述するスクリプトをファイルとして、アップロードし、[次へ] を選択します。
  6. [スコープ タグ] は既定のまま、[次へ] を選択します。
  7. 割り当てを行いたいグループを選択します。下記の例では、Windows 365 が含まれる動的デバイス グループを選択しています。
    また、スケジュールにて、[毎時] に実行するようにしています。
  8. [確認および作成] にて、設定内容を確認して、[作成] を選択します。
  9. 以上で、新規作成された Windows 365 も含めてシステム ロケールが [日本語 (日本)] に自動的に変更されます。


<スクリプト>


<検出スクリプト>

Detection_Script.ps1

# Detecting System Local
$System_Locale = Get-WinSystemLocale
if($System_Locale.LCID -eq 1041)
{
Write-Host "Japanese"
Exit 0
}
else
{
Write-Host "Non-Japanese"
Exit 1
}

<修復スクリプト>

Remediation_Script.ps1

# Set Japanese System Local
Set-WinSystemLocale -SystemLocale ja-JP

# Restart Windows OS
shutdown /r /t 3600

※ 必要に応じて、[Restart Windows OS] のステップを修正して、自動再起動しないようにしたり、再起動までの時間を延ばしてください。
(既定では、スクリプト実行後に 1 時間で再起動するようにしています。)


<まとめ>


最近、Windows 365 環境を何度も再プロビジョニングする機会がありましたので、その都度、システム ロケールを変更するのが面倒になったので、Microsoft Intune の修復スクリプト機能を使って自動化する方法を構築したので、皆さんにも共有しました。

実は、このシステム ロケールが Windows 365 の [言語と地域] に反映して変更されない問題は当初からフィードバックしていますが、未だに実装されていないため、今回の記事化することにしました。今後、このような対応を実施しなくても、Windows 365 製品としてデフォルトで実装してほしいですね。私も引き続きフィードバックを続けていきます。