Env
- WindowsServer2016 English Full-Base
PS> add-type -AssemblyName system.drawing
PS> (New-Object System.Drawing.Text.InstalledFontCollection).Families | Where-Object { $_.Name -match 'Meiryo' }
Name
----
Meiryo UI
PS> Get-ChildItem -path C:\windows\Fonts | Where-Object {$_.Name -match "Meiryo"}
ディレクトリ: C:\windows\Fonts
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/10/15 22:53 9525628 meiryo.ttc
-a---- 2019/10/15 22:53 9742224 meiryob.ttc
Overview
- AMI から EC2 instance 作成後、
Settings > Apps > Apps & features > Manage optional features
から Meiryo font をインストールした.
- サーバー再起動後, Meiryo font が消えていた.
- 未使用の lang package を自動削除する TaskScheduler が動いていた.
Requirement
Detail
- 未使用の lang package を削除する TaskScheduler は
Microsoft\Windows\LanguageComponentsInstaller\Uninstallation
である.
- Windows Server2016 から当該の TaskScheduler が動作するようになった.
- サーバー起動後, 初期状態では Ready の状態であるが, 数日経過後何らかの契機でこの Task は実行される.
- この Task が実行されると, user の language list に登録されていない英語以外の全ての言語が削除される.
- 一度実行されるとこの Task は disable 状態となる.
- Task 実行後, サーバーが再起動したら削除が完全に適用される.
- 英語以外の Font が消えないようにするにはいくつか方法がある.
- user の language list に日本語の language component を登録する.
- 当該の TaskScheduler はどの user の language list にも登録されていない language component を uninstall する.
Start > Settings > Time & language > Region & language
で日本語を追加する.
- registry key を構成し, TaskScheduler により lang package が削除されるのを block する.
- registry path:
HKLM\Software\Policies\Microsoft\Control Panel\International
- name:
BlockCleanupOfUnusedPreinstalledLangPacks
- type:
REG_DWORD
- value:
0x1
- group policy object (GPO) を構成し, lang package が削除されるのを block する.
Control Panel/Regional and Language option/BlockCleanupOfUnusedPreinstalledLangPacks
References