当ブログでも Azure 上の Windows Server 2016 TP5 をスクリプトベースで日本語化してみる / Azure VM の日本語 UI を PowerShell で設定 で触れていますが、最近の OS に対して情報をまとめていなかったので。
スクリプト化などについては以下のサイトを参考にさせていただくと対応できると思いますので、本投稿では触れていません。
- 【Packer】日本語化したWindows Server 2022のVMイメージをAzureに作成する
- windows-server-2019-japanese
- Windows11の日本語化設定をPowerShellで行う
- Azure Image Builder で日本語化イメージを完全自動作成する (Windows Server 2019 編)
- windows2019をPowershellで日本語化する方法
- winsv2022japanese.ps1
言語設定を変更する際に使用する PowerShell のコマンドレット
言語設定を変更する際に使用する PowerShell のコマンドレットとしては、次の二つのモジュールに含まれるコマンドレットを使用します。
Windows Server の場合、International モジュールは 2022 までのバージョンで使用することができますので、地域設定等についてはこのモジュールに含まれるコマンドレットで変更することができます。
しかし、LanguagePackManagement については 2025 から使用できるようになったモジュールとななるため、Windows Server 2022 までは使用することができません。そのため、Windows Server 2022 までは、lpksetup.exe を使用して、言語パックの操作を行う必要があります。
Windows Server 2025 からは、LanguagePackManagement が含まれるようになりましたので、Windows 10 / 11 と同様に、言語パックのインストールに Install-Language が使用できるようになり、「-CopyToSettings」オプションを使用したデフォルト設定の変更が可能となっています。
デフォルト設定 / デフォルトプロファイルの設定内容の変更
Windows Server 2022 からは、前述のとおり Install-Language が使用できるようになりますので、この辺の作業は簡略化されてきますが、2022 まではデフォルト設定や / デフォルトプロファイルの言語設定についても考慮しておく必要があります。
言語設定についての変更でプロファイルに関連する内容の変更については、冒頭に記載した記事内でも実施されていますが、Microsoft のサイト内のドキュメントとしては次の記事が参考になります。
Windows Server 2022 までは、Install-Language が使用できないため、コントロールパネルの設定のコピーで実施していた内容を、コマンドで操作するための基本的な考え方がこのドキュメントに記載されています。
実施されている内容としては大きく二つとなります。
- システムの既定値 (OS にログインする前のユーザープロファイルに関連しないデフォルト設定)
- デフォルトプロファイル (新規ユーザーを作成する際のプロファイルのベース)
「1.」については「HKEY_USERS\.DEFAULT」(HKU\.DEFAULT) のレジストリを変更するものとなります。
このレジストリはデフォルトプロファイルではなく、システムにログオンする前の設定等が含まれるユーザー共通の設定が格納されているものとなり、本項の冒頭で記載した MS のドキュメントで「HKEY_USERS\.DEFAULT」の設定を変更しているものは、デフォルトユーザープロファイルではなく、システムデフォルトの設定を変更していると考えたほうが良いかと。
これについては Why is (Almost) Everybody Wrong About HKU\.Default? も参考となります。
「HKU\.DEFAULT」いついては、標準的なレジストリハイブがロードされているものとなりますので、実ファイルがどこあるかについては 上級ユーザー向けの Windows レジストリ情報 / レジストリ ハイブ も参考になります。
「2.」がデフォルトユーザープロファイルの変更となり、「C:\Users\Default\NTUSER.DAT」を変更しているものとなります。
これについては CopyProfile による既定のユーザー プロファイルのカスタマイズ も参考となります。
「C:\Users\Default」は新しいユーザープロファイルが作成される際にベースとなるため、そのディレクトリに含まれている、HKU の元となるレジストリハイブの実ファイルである「C:\Users\Default\NTUSER.DAT」をマウントしてカスタマイズすることで、設定のコピーを行うというものとなります。
こちらも本項の冒頭に記載した記事で実施されていますが「HKEY_USER\DEFAULT_USER」というレジストリに変更が行われているものは、「C:\Users\Default\NTUSER.DAT」をこのレジストリハイブとしてロードしたものに対して設定が行われているものとなり、「HKEY_USERS\DEFAULT_USER」というレジストリは標準で存在しているものではありません。
「HKEY_USER\DEFAULT_USER」を変更することで透過的に「C:\Users\Default\NTUSER.DAT」の内容を変更し、新規にユーザープロファイルが作成された場合に設定変更した内容を適用するというアプローチとなっています。
Install-Language で、「-CopyToSettings」オプションが使用できる場合には本項のアプローチの必要性も低くなるかもしれませんが、どのような仕組みで変更を行っているのかは把握しておくとよいのではないでしょうか。