はじめに
閉域網や大規模環境で Windows のボリュームライセンス認証を運用する場合、社内に KMS ホスト(KMS サーバー)を構築する方式が定番です。一方、Windows Server 2025 の登場により、「既存の KMS ホストで 2025 のクライアントを認証できない」「どのホストキーを入手すればよいか分からない」といった新しいつまずきポイントも生まれています。
本記事では、KMS ホストの構築手順を、役割の追加からクライアント認証、認証状態の確認コマンドまで一気通貫で解説します。Windows Server 2025 のクライアントを認証する際の注意点もあわせて整理します。
- KMS ホスト構築の前提条件と CSVLK(KMS ホストキー)の入手先
- Windows Server 2025 クライアントを認証するためのホスト側の要件
- 役割の追加から DNS SRV レコード確認までの構築手順
- クライアント側の設定とエラー 0xC004F038 の対処
先に要点をまとめると、KMS ホストの構築自体は「役割の追加 → CSVLK の登録と認証 → ファイアウォール開放」の 3 ステップで完了します。つまずきやすいのはむしろその前後で、入手すべきホストキーの世代と認証の閾値(サーバー 5 台 / クライアント 25 台)の 2 点を押さえておくことが構築成功の近道です。
なお、MAK / KMS / ADBA のどの認証方式を選ぶべきかという選定の考え方は、関連記事『MAK と KMS の違い|認証の仕組みと 3 方式の選定基準』を参照してください。本記事は KMS を選定済みの前提で進めます。
KMS ホスト構築の前提条件
構築作業に入る前に、ホスト OS の要件とホストキーの入手について確認します。ここを誤ると、構築後にホストキーが登録できない、目的の OS を認証できないといった手戻りが発生します。
対応 OS とホストキー(CSVLK)の入手先
KMS ホストは、公式ドキュメント上 Windows Server 2016 / 2019 / 2022 / 2025 を対象としており、ドメインコントローラーやファイルサーバーなど既存サーバーへの同居も可能です。クライアント OS(Windows 10 / 11)上にも構築できますが、その場合はクライアント OS しか認証できないため、サーバー OS を認証対象に含める場合は Windows Server 上に構築します。
KMS ホストの認証に使うキーは、正式には CSVLK(Customer Specific Volume License Key)と呼ばれ、一般に「KMS ホストキー」と表記されます。現在、CSVLK は Microsoft 365 管理センターから入手します。従来の入手先であった VLSC(ボリュームライセンスサービスセンター)は廃止され、その機能は Microsoft 365 管理センターに統合されています。(一部の公式ドキュメントには VLSC 表記が残っています)
もう 1 つ重要なのが、ホストキーの「世代」ルールです。KMS ホストが認証できるクライアントの範囲は、登録したホストキーの世代で決まります。
参考: Create a Key Management Services (KMS) Activation Host in Windows Server(Microsoft Learn)
“are dependent on the host key used to activate the KMS host”
(KMS ホストが認証できる KMS クライアントは、そのホストの認証に使用したホストキーに依存します)
https://learn.microsoft.com/en-us/windows-server/get-started/kms-create-host
新しい世代のホストキーは古い世代の OS も認証できますが、その逆はできません。たとえば「Windows Srv 2019」のホストキーで認証したホストは、Windows Server 2022 / 2025 や Windows 11 を認証できません。これから新規構築するのであれば、入手できる最新世代(Windows Srv 2025 DataCtr/Std KMS)のホストキーを登録しておくことを推奨します。
Windows Server 2025 クライアントを認証する場合の注意点
既存の KMS ホスト(Windows Server 2022 など)で Windows Server 2025 のクライアントを認証する場合、以下の 2 点が必要になります。
- ホスト OS への累積更新プログラムの適用
-
更新が適用されていないホストでは、2025 用ホストキーの登録(
slmgr /ipk)自体がエラーになります。Microsoft Q&A では、Windows Server 2022 ホストの場合 2024 年 2 月の累積更新プログラム(KB5034765)以降の適用が必要と案内されています。構築・更新の際は、ホスト OS に最新の累積更新プログラムを適用しておくことを推奨します。 - 「Windows Srv 2025 DataCtr/Std KMS」ホストキーの登録と再認証
-
既存ホストが 2022 世代のキーで動作している場合、2025 用のホストキーを新たに登録し、オンライン認証を行う必要があります。(手順は後述の構築手順と同一です)
なお、ホスト OS 自体が古く(Windows Server 2016 以前など)、必要な更新プログラムの提供が終了している場合は、新しい OS でのホスト再構築、または ADBA への移行を検討する段階といえます。
KMS ホストの構築手順
KMS ホストの構築は「役割の追加 → ファイアウォール設定 → CSVLK の登録と認証」の 3 ステップで完了します。本セクションの手順は、Microsoft Learn の公式ドキュメント「Create a Key Management Services (KMS) activation host」(https://learn.microsoft.com/en-us/windows-server/get-started/kms-create-host)に準拠しています。
ボリュームライセンス認証サービスの役割追加
管理者権限の PowerShell で以下を実行し、「ボリュームライセンス認証サービス」の役割をインストールします。
Install-WindowsFeature -Name VolumeActivation -IncludeManagementToolsGUI で操作する場合は、サーバーマネージャーの「役割と機能の追加」から「ボリュームライセンス認証サービス(Volume Activation Services)」を選択します。
ファイアウォールの設定(TCP 1688)
KMS ホストは既定で TCP 1688 ポートで認証リクエストを受け付けます。Windows ファイアウォールには KMS 用の定義済み規則(SPPSVC-In-TCP)が用意されており、既定ではすべてのネットワークプロファイルで許可されます。ドメインとプライベートのプロファイルのみに限定する場合は、以下のように設定します。
Set-NetFirewallRule -Name SPPSVC-In-TCP -Profile Domain,Private -Enabled True経路上に別のファイアウォールが存在する構成(セグメント分離された閉域網など)では、クライアントから KMS ホストへの TCP 1688 の通信許可もあわせて確認しておくと、構築後の疎通トラブルを避けられます。
CSVLK の登録とライセンス認証
公式ドキュメントで案内されている手順は、ボリュームライセンス認証ツール(ウィザード)を使う方法です。
vmw.exeを実行してボリュームライセンス認証ツールを起動します。- 認証の種類で「キー管理サービス(KMS)」を選択し、サーバー名に
localhost(または対象ホスト名)を入力します。 - 「KMS ホストキーのインストール」を選択し、Microsoft 365 管理センターから入手した CSVLK を入力してコミットします。
- キーのインストール後、「オンラインで認証」を選択して KMS ホスト自体のライセンス認証を実行します。(インターネットに接続できない場合は電話認証も選択できます)
Server Core 環境やリモートからコマンドラインで完結させたい場合は、slmgr でも同じ操作が可能です。
rem CSVLK(KMS ホストキー)を登録
slmgr /ipk <CSVLK>
rem KMS ホスト自体をオンライン認証
slmgr /ato注意点として、KMS ホストの認証が完了しても、クライアントが即座に認証されるわけではありません。クライアント側の認証には、認証の閾値(サーバー 5 台 / クライアント 25 台)を満たす必要があります。(詳細は後述のトラブルシューティングで解説します)
DNS SRV レコードによる自動検出
KMS ホストは、既定で DNS に SRV レコード(_vlmcs._tcp)を自動的に公開します。DNS サービスが動的更新(Dynamic Update)に対応していれば、ウィザードの完了時点でレコードが作成され、クライアントは設定なしで KMS ホストを発見できます。

SRV レコードの確認方法
構築後、クライアントが参照する DNS に対して以下を実行し、レコードが登録されているかを確認します。
nslookup -type=srv _vlmcs._tcp.<ドメイン名>応答に KMS ホストの FQDN とポート 1688 が含まれていれば、自動検出の準備は完了です。
動的更新に対応していない DNS の場合
BIND の一部構成など、動的更新に対応していない DNS サービスを使用している場合は、以下の値で SRV レコードを手動作成します。(値は前掲の公式ドキュメントの記載に準拠)
| 項目 | 値 |
|---|---|
| 種類 | SRV |
| サービス | _vlmcs |
| プロトコル | _tcp |
| 優先度 | 0 |
| 重み | 0 |
| ポート番号 | 1688 |
| ホスト名 | KMS ホストの FQDN |
手動作成する場合は、KMS ホスト側の自動公開を無効化しておくことが公式ドキュメントで推奨されています。(vmw.exe の構成画面で「DNS レコード」の公開チェックを外します)自動公開を有効のままにすると、公開失敗のイベントログが蓄積し続けるためです。
KMS クライアントの設定
ボリュームライセンス版メディアからインストールした Windows は、最初から KMS クライアントとして構成されています。DNS の SRV レコードが正しく登録されていれば、クライアント側の追加設定は原則不要です。
参考: Key Management Services (KMS) client activation and product keys(Microsoft Learn)
“are, by default, KMS clients with no extra configuration needed”
(ボリュームライセンス版の Windows は、既定で追加設定不要の KMS クライアントとして構成されています)
https://learn.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys
クライアント側の設定が必要になるのは、次のようなケースです。
- MAK 認証やリテール版から KMS 認証へ切り替える場合(GVLK の登録)
- KMS ホストだったサーバーをクライアントに戻す場合(GVLK の登録)
- DNS の自動検出を使わず、KMS ホストを手動指定したい場合
GVLK の登録(MAK やリテール版からの切り替え)
KMS クライアントとして動作するには、OS に GVLK(Generic Volume License Key)と呼ばれる公開された共通キーが登録されている必要があります。MAK キーなどで上書きされている場合は、管理者権限のコマンドプロンプトで以下を実行して GVLK に戻します。
rem GVLK を登録(KMS クライアントに切り替え)
slmgr /ipk <OSバージョン・エディションに対応した GVLK>GVLK は OS のバージョン・エディションごとに異なり、上記の公式ドキュメント「KMS client activation and product keys」に全一覧が公開されています。たとえば Windows Server 2022 Datacenter の GVLK は WX4NM-KYWXW-QJJR4-XV3QB-6VM33 です。(公開情報)Windows Server 2025 各エディションの GVLK も同ページに掲載されているため、対象 OS に応じて選択します。
KMS ホストの手動指定と認証
DNS の SRV レコードによる自動検出が使えない場合(ワークグループ環境や DNS 未整備の検証環境など)は、KMS ホストを手動で指定します。
rem 1. KMS ホストの FQDN または IP アドレスを指定(ポート省略時は 1688)
slmgr /skms <KMSホストのFQDNまたはIPアドレス>
rem 2. ライセンス認証を即時実行
slmgr /ato
rem (参考)手動指定を解除し、DNS 自動検出に戻す場合
slmgr /ckmsslmgr /ato の実行後、「製品は正常にライセンス認証されました。」と表示されれば完了です。エラー 0xC004F038 が返る場合は、後述の閾値に達していないことが原因として考えられます。
認証状態の確認方法
構築後の状態確認には slmgr /dlv(詳細表示)を使用します。slmgr /dli は同系統の簡易表示版で、どちらもホスト・クライアント双方で実行できます。
slmgr /dlv の見方(KMS ホスト側)
KMS ホスト側で確認したい項目は以下の 3 点です。
- License Status(ライセンスの状態)
-
「ライセンスされています(Licensed)」であること。それ以外の場合はホスト自体の再認証が必要です。
- Current Count(現在のカウント)
-
過去 30 日間に認証を試行した有効なクライアント数で、0〜50 の範囲を取ります。カウントの上限は閾値の 2 倍でキャップされる仕様のため、サーバー OS のみの環境では最大 10(2 × 5)、クライアント OS が混在する環境では最大 50(2 × 25)までしか増えません。50 を超えないのは異常ではありません。
- Listening on Port
-
既定は 1688 です。クライアントとの間でこのポートが開いていることを確認します。
イベントログの確認(12288 / 12289 / 12290)
コマンドに加えて、イベントログでも認証の流れを追跡できます。
- クライアント側(Application ログ)
-
認証要求の送信時にイベント ID 12288、KMS ホストからの応答受信時にイベント ID 12289 が記録されます。12289 の Info フィールドには認証の成否(Activation Flag: 1 が成功 / 0 が失敗)と、その時点の KMS ホスト側カウントが記録されます。
- 12288 のみが記録され 12289 がない場合
-
KMS ホストに到達できていない状態です。名前解決(SRV レコード)と TCP 1688 の疎通を確認します。
- KMS ホスト側
-
「アプリケーションとサービス ログ」>「Key Management Service」のイベント ID 12290 で、クライアントからのリクエスト受信を確認できます。
参考: Guidelines for troubleshooting the Key Management Service (KMS)(Microsoft Learn)
“The count doesn’t increase above 50, no matter how many valid systems exist”
(環境内に有効なシステムがいくつ存在しても、カウントが 50 を超えて増えることはありません)
https://learn.microsoft.com/en-us/windows-server/get-started/activation-troubleshoot-kms-general
エラー 0xC004F038 への対処
slmgr /ato の実行時に最も遭遇しやすいのがエラー 0xC004F038(「キー管理サービス(KMS)で報告された数が不足しています」)です。このエラーは、KMS ホストとの通信自体は成立しているものの、カウントが閾値(サーバー 5 / クライアント 25)に達していない状態を意味します。ネットワークの問題ではありません。
対処の手順は次のとおりです。
KMS ホスト側で slmgr /dlv を実行し、Current Count を確認します。サーバー OS の場合、この値が 5 に達するまでクライアント側では 0xC004F038 が出続けます。
カウントが不足している場合は、他の KMS クライアント(仮想マシンでも可)から slmgr /ato を実行し、カウントを積み上げます。なお、未認証のクライアントは既定で 2 時間ごとに認証を自動再試行するため、閾値の充足後は手動操作なしでも順次認証されます。
十分な台数があるのにカウントが 1 から増えない場合は、CMID(Client Machine ID)の重複が原因として考えられます。マスターイメージから sysprep /generalize を実行せずにクローン展開すると、全クライアントが同一の CMID を持つため、KMS ホストからは 1 台として扱われます。この場合は各クライアントで sysprep /generalize を含む再展開、または slmgr /rearm による CMID の再生成が必要です。ただし slmgr /rearm には実行回数の上限(既定で数回まで)があるため、恒久的な対処はイメージの作り直しを推奨します。
閾値やカウントの 30 日・50 件ルールなど、仕組みの詳細は関連記事「MAK と KMS の違い」の閾値の解説(https://mytech-blog.com/kms/)を参照してください。
まとめ
本記事では、KMS ホスト(KMS サーバー)の構築手順を、役割の追加からクライアント認証、状態確認までの流れで解説しました。KMS ホストの構築自体は 3 ステップで完了しますが、Windows Server 2025 対応のホストキー世代と認証の閾値の 2 点を事前に把握しておくことが、構築後のつまずきを避けるうえで役立ちます。
- KMS ホストは役割追加、ファイアウォール設定、CSVLK 登録の 3 ステップで構築
- CSVLK(KMS ホストキー)は Microsoft 365 管理センターから入手
- 新しい世代のホストキーは古い OS も認証できるが、逆は不可
- Windows Server 2025 の認証には更新プログラムの適用と 2025 用ホストキーが必要
- クライアントは既定で GVLK を持ち、追加設定なしで自動認証
- 認証状態は
slmgr /dlvの License Status と Current Count で確認 - エラー 0xC004F038 は閾値(サーバー 5 台 / クライアント 25 台)の未達が原因
以上、最後までお読みいただきありがとうございました。
