今回はプレビュー中の Azure Image Builder を使い、日本語化イメージを完全自動作成する手順を紹介します。Azure Image Builder は間も無く一般公開予定ですが、現状は CLI のみサポートしています。
GitHub リポジトリ
今回使うテンプレートやスクリプトは次のリポジトリにまとめてあります。ReadMe を追えば実行できます。
Image Builder でのイメージ作成全体像
Image Builder でのイメージ作成の流れを次の図で示します。

- Image Builder でイメージを作成できるようカスタムロールの付与と、イメージの元となるイメージテンプレートを作成します。
- 作成したイメージテンプレートをもとに、自動で仮想マシンの作成・カスタマイズ・イメージ化まで行います。
- 作成したイメージをもとに仮想マシンを作成することができます。
今回は共有イメージギャラリーにイメージを保存します。
イメージテンプレート
イメージのカスタマイズ内容やソース、保存先は次のテンプレートで定義しています。(一部置換用の文字列が含まれます)
vmProfile
イメージ作成用の仮想マシンのプロパティを指定します。VM サイズは標準だと D1v2 なのでスペックを上げておいた方がいいです。
source
イメージのソースを指定します。Marketplace の他、作成済みのマネージドイメージや共有イメージギャラリーのイメージを指定することもできます。
customize
イメージ作成時に実行するカスタマイズ作業を指示できます。
- File : ローカルにファイルをダウンロードします。
- Shell : シェルスクリプトを実行します。
- WindowsRestart : Windows の再起動を実施します。
- PowerShell : PowerShell スクリプトを実行します。
- WindowsUpdate : Windows Update を更新します。
distribute
イメージの保存先を指定します。保存先にはマネージドイメージか共有イメージギャラリーを指定できます。
日本語化スクリプト
今回作った日本語化用のスクリプトを紹介します。
install_language_pack.ps1
言語パックのダウンロードとインストールをします。ja-JP
の部分で日本語のインストールを指定しています。
# Download Language pack for Windows Server 2019 ## Define download environment variables ### download path $downloadPath = "C:\LangPack.iso" ### language pack url $downloadUrl = "https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso" ### downlaod $wc = New-Object net.webclient $wc.Downloadfile($downloadUrl, $downloadPath) # Install Language pack ## ISO mount Mount-DiskImage $downloadPath ## Get mounted disk letter $driveLetter = (Get-DiskImage -ImagePath $downloadPath | Get-Volume).DriveLetter $languagePackPath = $driveLetter + ":\x64\langpacks\Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cab" ## install language pack lpksetup.exe /i ja-JP /p $languagePackPath /r /s Wait-Process -Name lpksetup # Clean file ## Unmount disk DisMount-DiskImage $downloadPath ## Delete ISO file Remove-Item $downloadPath
japanese_setting_1.ps1
表示言語と入力方式を変更します。このスクリプトを実行後、再起動処理をかけます。
#ユーザーが使用する言語を日本語にします。 Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force #入力する言語を日本語で上書きします。 Set-WinDefaultInputMethodOverride -InputTip "0411:00000411" #MS-IMEの入力方式を設定します。 Set-WinLanguageBarOption -UseLegacySwitchMode -UseLegacyLanguageBar
japanese_setting_2.ps1
地域やシステムロケールの変更に加え、Welcome 画面とデフォルトユーザーの表示言語を変更します。Welcome 画面とデフォルトユーザーの表示言語を変更するコマンドはないので、地道にレジストリを書き換えます。
#UIの言語を日本語で上書きします。 Set-WinUILanguageOverride -Language ja-JP #時刻/日付の形式をWindowsの言語と同じにします。 Set-WinCultureFromLanguageListOptOut -OptOut $False #ロケーションを日本にします。 Set-WinHomeLocation -GeoId 0x7A #システムロケールを日本にします。 Set-WinSystemLocale -SystemLocale ja-JP #タイムゾーンを東京にします。 Set-TimeZone -Id "Tokyo Standard Time" Set-Culture ja-JP $DefaultHKEY = "HKU\DEFAULT_USER" $DefaultRegPath = "C:\Users\Default\NTUSER.DAT" reg load $DefaultHKEY $DefaultRegPath reg import "C:\ja-JP-default.reg" reg unload $DefaultHKEY reg import "C:\ja-JP-welcome.reg"
おそらくこのスクリプトだけでも GUI 操作なくできるようになっていると思います。
Image Builder が GA したらよりカスタマイズがしやすくなるかと思います。今後は Windows Virtual Desktop 用の日本語イメージ作成も試していこうと思います。
コメント