パソコン練習日記

やってみたことを記録しています。Bloggerからこちらに引っ越して来ました。一部、画像がリンク切れしていますがひとつひとつ直すのは心が折れたのでそのままにします。

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

を行ったが


英語のまま
やっぱりlpksetupがおかしいと思う

公式ヘルプ見直してみて、もう一回実行
lpksetup /i ja-JP /p パッケージパス

オプションを変更したやつも実行
lpksetup /i * /p パッケージパス

ダメっぽい

試しにGUIで実行
lpksetup /p パッケージパス


なんかエラーになってる
The language cannot be installed on this computer.


試しにWindowsServer2016でもやってみると

Corrupted or invalid language pack file
Selected language pack file is corrupted or invalid; please try a different file or location.

ファイルが無効か破損しているまたは無効、と

破損なのか?もしかして
isoファイルマウントしてcabファイルだけ引っこ抜いたから?

では、isoファイルをマウントしてやってみる。

Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cabを指定


でも、変わらん。


ダウンロード失敗でisoファイル自体が壊れているのかと思って
もう一回ダウンロードしてハッシュで比較
変わらん。壊れてないじゃん。



ではでは、いちおう、と
WindowsServer2019で試す。


あれ?いける。いけるぞ

このLanguagePackって2019でしか使えないのか。。。
破損じゃなくて、無効なファイルだった

で、LanguagePackをダウンロードする際に使ったページを再確認。


ふつうに適用対象WindowsServer2019って書いてる。
ページの主題にも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だと、GUIフォームが出てくるのか。
完全自動化にするならlpksetupではなくdismを使うべきなのかもしれない。

日本語化を全自動にされているこちらは
dismを使っていた。たぶん、そういうことなんだろう。




とりあえず
Powershellで後処理も含めざっと流す


ちゃんと日本語になってる。
キーボードも日本語キーボード、時間も日本時間。


あとはこちら参考にすれば、全自動化が可能に。
とても素晴らしい記事でした。


再起動後の処理もRunOnceにスクリプトを登録することで全自動化に成功しています。
自分は、タスクスケジューラにでも登録しようとしていたので
たしかにRunOnceのほうがいいかも。と思いました。