Powershellを使ったWindows Server 2022の日本語化に失敗したので調べたら
Windows Server 2022 の日本語化をPowershellで試したら出来ていなかった
切り分けして調べてみたら
WindowsServer2019のLanguagePackでやっていたので失敗していただけだった
という話。
AzureのWindowsServer2022 VMの日本語化しようとして、
どうせだったら自動化しよう(いろいろな人が書いてくれているのを見ながらやればすぐやれるだろう。)と思いながら、
ほぼコピペのPowershellを実行。
その結果、英語のまま。
なんか間違っているらしい。
なので1つ1つ順序良くやって、おかしなところを探す。
まず、気になった箇所はコレ。
lpksetupを管理者権限で実行したが
瞬殺?
1秒と掛からず処理が終わった。
エラーが出てないので後続の設定処理Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force
Set-WinDefaultInputMethodOverride -InputTip "0411:00000411"
Set-WinLanguageBarOption -UseLegacySwitchMode -UseLegacyLanguageBar
Restart-Computer
Set-WinUILanguageOverride -Language ja-JP
Set-WinCultureFromLanguageListOptOut -OptOut $False
Set-WinHomeLocation -GeoId 0x7A
Set-WinSystemLocale -SystemLocale ja-JP
Set-TimeZone -Id "Tokyo Standard Time"
Restart-Computer
を行ったが
なんかエラーになってる
Corrupted or invalid language pack file
ふつうに適用対象WindowsServer2019って書いてる。
英語のまま
やっぱりlpksetupがおかしいと思う
公式ヘルプ見直してみて、もう一回実行
lpksetup /i ja-JP /p パッケージパス
オプションを変更したやつも実行
lpksetup /i * /p パッケージパス
ダメっぽい
試しにGUIで実行
lpksetup /p パッケージパス
The language cannot be installed on this computer.
試しにWindowsServer2016でもやってみると
Selected language pack file is corrupted or invalid; please try a different file or location.
Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cabを指定
ファイルが無効か破損しているまたは無効、と
破損なのか?もしかして
isoファイルマウントしてcabファイルだけ引っこ抜いたから?
では、isoファイルをマウントしてやってみる。
でも、変わらん。
ダウンロード失敗でisoファイル自体が壊れているのかと思って
もう一回ダウンロードしてハッシュで比較
変わらん。壊れてないじゃん。
ではでは、いちおう、と
WindowsServer2019で試す。
あれ?いける。いけるぞ
このLanguagePackって2019でしか使えないのか。。。
破損じゃなくて、無効なファイルだった
で、LanguagePackをダウンロードする際に使ったページを再確認。
https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/shell-experience/cannot-configure-language-pack-windows-server-desktop-experience
ページの主題にも2019って書いてる。
目には入っていただろうけど、まったく気にしていなかった。
では、
WindowsServer2022のLanguagePackはどこでダウンロードできるのか。
検索したけど見つからない。
英語でも探したけど全然見つからない。
WindowsServer2022を買った人は持ってるっぽい。
どうしたもんか、と
固まっていたけど、ふと思い出す。
わし、Visual Studio Subscriptionsのライセンスあるじゃん
ということで探してみる。
ダウンロードしたので、マウントして確認。
なんかいっぱいある。
ja-jpでフィルタ。
やっぱり、なんかいっぱいある。
どれ充てればいいんだろ?
全部?と、思ったけど、NotepadとかMSPaintとかあるので
個別っぽい。
とりあえずサイズでソート
サイズが比較的大きくて
ファイル名にBasicってのが入っているのと
Language-Packって入っているのがある。
コレじゃね?
まずはMicrosoft-Windows-Server-Language-Pack_x64_ja-jp.cabから読み込んでみる。
では、もう一個のcabは・・
なんか怒られた。
とりあえず
Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cabで日本語化。
完全自動化にするならlpksetupではなくdismを使うべきなのかもしれない。
日本語化を全自動にされているこちらは
dismを使っていた。たぶん、そういうことなんだろう。
とりあえず
キーボードも日本語キーボード、時間も日本時間。
あとはこちら参考にすれば、全自動化が可能に。
とても素晴らしい記事でした。
再起動後の処理もRunOnceにスクリプトを登録することで全自動化に成功しています。
自分は、タスクスケジューラにでも登録しようとしていたので
たしかにRunOnceのほうがいいかも。と思いました。


















