Windows 10 バージョン2004では、クリーンインストール直後の既定が「ライト テーマ」になっているため、企業内で標準をダーク テーマにしたい場合はひと手間必要です。本記事では、監査モードだけに頼らず、unattend.xml・既定プロファイル・グループポリシー・スクリプトを組み合わせて、新規ユーザーと既存ユーザーの両方にダーク テーマ(+ハイコントラスト)を既定で適用する具体的な手順を整理します。
Windows 10 2004のテーマ設定の基本を整理する
まずは「どこに何が保存されているのか」を押さえておくと、後の設計がかなり楽になります。Windows 10 のダーク/ライト テーマは、主に次の2つのレイヤーで制御されています。
- ユーザー単位(HKCU) … サインインしたユーザーごとの設定
- 既定プロファイル(Default User) … 新規ユーザー作成時のひな型
テーマに関する代表的なレジストリキーは以下の通りです。
| 用途 | レジストリ パス | 主な値 | 意味 |
|---|---|---|---|
| ユーザーのテーマ種別 | HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize | AppsUseLightTheme SystemUsesLightTheme | 0 = ダーク / 1 = ライト |
| (参考)マシン全体の既定 | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize | 同上 | 環境によってログオン画面などに影響する場合あり |
Windows 10 2004では、標準インストール直後の既定値は AppsUseLightTheme / SystemUsesLightTheme = 1(ライト) です。これを「最初から 0(ダーク)」にしておきたい場合、
- 展開前に Default User のレジストリを編集しておく
- または展開後に GPO / スクリプトで HKCU を上書きする
といったアプローチを組み合わせるのが実務的です。
監査モードを既定プロファイル作成に使うべきでない理由
よくある疑問が「監査モード(Audit Mode)でダーク テーマに変更してから OOBE に進めば、新規ユーザーにも残るのでは?」というものです。結論としては、監査モードは既定プロファイル作成の主手段として使うべきではありません。
理由を整理すると次のようになります。
- 監査モードは本来、ドライバ・アプリの組み込みやスクリプト実行など、イメージ検証/カスタマイズ用として設計されている
- 監査モードで行ったユーザー設定が、常に期待通りに Default User に反映されるとは限らない
- Windows のビルド差・累積更新の影響で、挙動が微妙に変わることがあり、再現性の担保が難しくなる
「たまたまうまくいった」環境もありますが、企業展開や教育機関などの多数展開では、unattend.xml の CopyProfile と Default User レジストリを明示的に操作する方が安全です。
展開前にダークテーマを既定にする(イメージ作成時)
Windows 10 バージョン2004のイメージを作成する際に、最初からダーク テーマを既定にする一般的なフローを示します。
イメージ作成の全体フロー例
- 参照用マシンに Windows 10 2004 をクリーンインストール
- 組み込み管理者または作業用管理者でサインイン
- ダーク テーマ・壁紙・タスクバーなど、ユーザー環境を望ましい状態に調整
- unattend.xml で CopyProfile=true を設定
- 必要に応じて、Default User の NTUSER.DAT にテーマ関連のレジストリを直接追加
- sysprep /generalize /oobe /shutdown でイメージを汎用化
- WIMキャプチャ → 展開先で利用
CopyProfile は「カスタマイズ済みのプロファイルを既定プロファイルにコピー」する機能ですが、Windows の挙動や更新状況に左右されることもあるため、重要なレジストリ(ダーク/ライトのフラグ)は念のため直接入れておくのがおすすめです。
unattend.xml でテーマと CopyProfile を指定する
unattend.xml では、「Microsoft-Windows-Shell-Setup」コンポーネントの中でテーマ名と CopyProfile を設定します。
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<Themes>
<ThemeName>ContosoDark.theme</ThemeName>
<DefaultThemesOff>false</DefaultThemesOff>
</Themes>
<CopyProfile>true</CopyProfile>
</component>
ここでのポイントは次の通りです。
- ThemeName には、実際に配置した .theme ファイル名を指定する
例:%SystemRoot%\Resources\Themes\ContosoDark.themeを用意しておく - DefaultThemesOff は「既定のテーマを無効にするか」のフラグで、独自テーマを使うなら false のままで問題ないケースが多い
- CopyProfile=true により、カスタマイズ済みの作業用プロファイルが
C:\Users\Defaultにコピーされる
ただし、ThemeName だけではダーク/ライト切り替えのフラグが期待通りに固定されない場合があります。そのため、次のように Default User のレジストリに直接値を入れておくと、より確実です。
Default User のレジストリを調整してダークを固定する
Default User プロファイルに対して、以下のレジストリ値を追加します。
| キー(Default User へのマウント時) | 値の名前 | 型 | 値 |
|---|---|---|---|
| HKU\DefUser\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize | AppsUseLightTheme | REG_DWORD | 0(ダーク) |
| 同上 | SystemUsesLightTheme | REG_DWORD | 0(ダーク) |
具体的なコマンド例(管理者権限・OOBE前に実行):
reg load HKU\DefUser "C:\Users\Default\NTUSER.DAT"
reg add "HKU\DefUser\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v AppsUseLightTheme /t REG_DWORD /d 0 /f
reg add "HKU\DefUser\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v SystemUsesLightTheme /t REG_DWORD /d 0 /f
reg unload HKU\DefUser
この作業により、初回サインイン時点でダーク テーマが既定となり、ユーザーが手動で変更しない限りライト テーマにはなりません。
展開後に既存端末・既存ユーザーへダークテーマを一括適用する
既に展開済みの Windows 10 2004 環境で、「次回ログオンから全ユーザーをダーク テーマに切り替えたい」というケースでは、グループポリシー基本設定(GPP)または ログオン スクリプト を使うのが現実的です。
グループポリシー基本設定(GPP)で HKCU を配布する
Active Directory 環境であれば、ユーザー設定としてレジストリ値を配布できます。
- グループポリシー管理エディターを開く
- ユーザーの構成 > 基本設定 > Windows の設定 > レジストリ を選択
- 新規 > レジストリ項目を作成し、以下のように設定
| 項目 | 設定例 |
|---|---|
| 操作 | 更新(または作成) |
| ハイブ | HKEY_CURRENT_USER |
| キーのパス | Software\Microsoft\Windows\CurrentVersion\Themes\Personalize |
| 値の名前 | AppsUseLightTheme / SystemUsesLightTheme |
| 値の種類 | REG_DWORD |
| 値のデータ | 0 |
この GPO を、ダーク テーマを既定にしたいユーザー OU にリンクしておけば、次回のグループポリシー更新(gpupdate)またはログオン時に自動で適用されます。
ログオン スクリプト(PowerShell)で配布する
GPP を使わず、ログオン スクリプトで配布することも可能です。以下はユーザーごとに実行される PowerShell の例です。
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Force | Out-Null
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "AppsUseLightTheme" -Type DWord -Value 0
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "SystemUsesLightTheme" -Type DWord -Value 0
このスクリプトを次のいずれかの方法で実行させます。
- ユーザー GPO の「ログオン スクリプト」に登録
- スタートアップフォルダーにショートカットを配置
- タスクスケジューラで「ユーザー ログオン時」に実行
いずれの場合も、最初の一回のログオンでテーマ設定がダークに切り替わるようにできます。
将来作成されるユーザーへの自動適用
既存ユーザーへの配布だけでなく、「今後新しく作成されるユーザーも自動的にダーク テーマにしたい」場合は、
- イメージ側で Default User の NTUSER.DAT にダーク設定を事前投入(前述の
reg load/reg add) - あるいは OOBE 前後で
SetupComplete.cmdや専用スクリプトから Default User にレジストリを反映
といった二段構えにしておくと、運用が安定します。
ハイコントラストテーマを自動で有効化する方法
アクセシビリティの観点から、標準のダーク テーマだけでなく、ハイコントラスト テーマを既定にしたいというニーズもあります。Windows 10 2004では、ポリシーとスクリプトの2方向でアプローチできます。
グループポリシーで特定のテーマを強制読み込みする
GPO には「特定のテーマを読み込む」というポリシーがあります。
- グループポリシー管理エディターを開く
- ユーザーの構成 > 管理用テンプレート > コントロール パネル > 個人設定 を開く
- 「特定のテーマを読み込む」 を有効にし、テーマファイルへのパスを指定
代表的なハイコントラスト テーマのパス例:
| テーマ名 | ファイル パス |
|---|---|
| High Contrast Black | %SystemRoot%\Resources\Ease of Access Themes\hcblack.theme |
| High Contrast White | %SystemRoot%\Resources\Ease of Access Themes\hcwhite.theme |
| High Contrast #1 | %SystemRoot%\Resources\Ease of Access Themes\hc1.theme |
| High Contrast #2 | %SystemRoot%\Resources\Ease of Access Themes\hc2.theme |
これにより、対象ユーザーはログオン時に指定されたハイコントラスト テーマが自動的に適用されます。
スクリプトでハイコントラスト テーマを適用する
ポリシーではなくスクリプトで切り替えたい場合、テーマファイルを開くだけでも適用されます。ユーザー ログオン時に次のような PowerShell を実行します。
Start-Process "$env:SystemRoot\Resources\Ease of Access Themes\hcblack.theme"
ハイコントラストの種類を変えたい場合は、ファイル名(hcwhite.theme など)を変更するだけです。アクセシビリティ要件の異なる部署ごとに異なるテーマを割り当てるといった運用も可能です。
ユーザーによるテーマ変更を制限する
「一度ハイコントラスト テーマを適用したら変更されたくない」という場合、同じく個人設定系のポリシーで制限できます。
- ユーザーの構成 > 管理用テンプレート > コントロール パネル > 個人設定
- 「テーマの変更を禁止」などのポリシーを有効化
ただし、ハイコントラストは利用者によって好みが分かれるため、全社一律でロックするか、部門・ロールごとに分けるかを検討したうえで設定するのがおすすめです。
実務でそのまま使えるテンプレート集
ここまでの内容を踏まえ、すぐに現場で試せるテンプレートをまとめます。
.reg ファイル(既存ユーザー向け/GPPでも利用可)
既存ユーザーの HKCU に手動で適用したい場合や、GPP でインポートする際に使える .reg ファイルの例です。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize]
"AppsUseLightTheme"=dword:00000000
"SystemUsesLightTheme"=dword:00000000
Default User に対する事前投入用バッチ
イメージ作成中やセットアップ スクリプトから実行することを想定したバッチの例です。
reg load HKU\DefUser "C:\Users\Default\NTUSER.DAT"
reg add "HKU\DefUser\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v AppsUseLightTheme /t REG_DWORD /d 0 /f
reg add "HKU\DefUser\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v SystemUsesLightTheme /t REG_DWORD /d 0 /f
reg unload HKU\DefUser
これを SetupComplete.cmd などから呼び出しておけば、展開直後から新規ユーザーは必ずダーク テーマでスタートできます。
unattend.xml 抜粋(Shell-Setup / Themes + CopyProfile)
イメージの自動展開に利用する unattend.xml の抜粋例です。
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<Themes>
<ThemeName>ContosoDark.theme</ThemeName>
<DefaultThemesOff>false</DefaultThemesOff>
</Themes>
<CopyProfile>true</CopyProfile>
</component>
注意点として、ThemeName だけではダーク固定にならない場合があるため、前述のように Default User のレジストリにも AppsUseLightTheme/SystemUsesLightTheme = 0 を持たせる構成にしておくと安心です。
よくある質問とトラブルシューティング
Q. ダーク テーマを既定にしたのに、一部画面がライトのままです。
A. 次の観点を確認してください。
- 対象ユーザーの HKCU に AppsUseLightTheme / SystemUsesLightTheme が正しく 0 で設定されているか
- Windows のビルドや累積更新により、一部 UI(古いダイアログなど)がテーマ設定に追随していない可能性
- UWP アプリごとに独自のテーマ設定を持っている場合(アプリ側の設定も要確認)
Q. 監査モードで設定した内容と、CopyProfile でコピーされる内容が違う気がします。
A. CopyProfile は「現在ログオン中のユーザー プロファイル」をベースに動作しますが、すべての設定(特に一時的なキャッシュやアプリ固有設定)が期待通りにコピーされるわけではありません。テーマなどの重要設定は、
- 作業用プロファイルで設定する
- + Default User のレジストリを直接調整する
という二重化にしておくと、環境差によるブレが減ります。
Q. ダーク/ライト設定をマシン全体で強制したいのですが?
A. 一部の環境では、HKLM 側の SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize に同名の値を設定することで、ログオン画面などシステム側の見た目に影響を与えられる場合があります。ただし、
- 今後の更新で挙動が変わる可能性がある
- 一部アプリとの互換性に影響する可能性がある
といったリスクもあるため、本番展開前に必ず検証環境で十分なテストを行うことを推奨します。基本方針は「ユーザー単位(HKCU)を主とし、HKLM は補助的に利用」という考え方が安全です。
Q. ユーザーにダーク/ライトを自由に選ばせつつ、初期状態だけダークにしたいです。
A. 本記事で紹介している Default User の調整(NTUSER.DAT の編集)は、あくまで「新規アカウント作成時の初期値」を変えるだけなので、その後ユーザーが自分でライト テーマに変更することは可能です。
一方、GPO で HKCU のレジストリを「強制」してしまうと、毎回ポリシー更新のたびにダークに戻ってしまいます。ポリシーを使う場合は、
- 初回ログオン時だけ適用するようにスクリプト側で制御する
- GPP の「一度だけ適用」オプションを活用する(環境による)
などの工夫をすると、ユーザーの自由度をある程度維持できます。
まとめ
Windows 10 バージョン2004で「全ユーザーの既定をダーク テーマにしたい」という要件は、監査モードだけに依存するのではなく、次のような組み合わせで実現するのが安定したやり方です。
- 展開前:unattend.xml + CopyProfile + Default User のレジストリ調整で、新規ユーザーの初期値をダークにする
- 展開後:グループポリシー基本設定またはログオン スクリプトで、既存ユーザーの HKCU にダーク設定を配布する
- ハイコントラスト:「特定のテーマを読み込む」ポリシーや PowerShell スクリプトで、アクセシビリティ要件に応じたテーマを自動適用する
これらを組み合わせれば、新規・既存ユーザーを問わず、安定してダーク テーマを既定にした Windows 10 2004 環境を構築できます。特に大規模展開では、テスト用 OU やテスト用イメージを用意して、段階的に適用範囲を広げていく運用が安全です。

コメント