Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

当サイトでは、企業向けボリュームライセンスプログラムにおけるMicrosoft製品認証サービスKMS(Key Management Service)の設定や運用に関するさまざまなトピックをこれまで取り上げてきました。本記事では、KMS認証技術に関する基本情報と必要なリンク集を、ひとつの記事にまとめてご紹介します。

目次

  • KMSボリューム認証のアーキテクチャと特徴
  • KMSサーバーの要件
  • Microsoft OfficeのKMSサーバー認証
  • VAMT(Volume Activation Management Tool)
  • よくあるKMS認証の問題とトラブルシューティング
  • SlmgrコマンドによるWindowsのKMS認証
  • KMSライセンスサーバーでMS Officeを手動認証する方法

KMSボリューム認証のアーキテクチャと特徴

KMSインフラストラクチャは、KMSサーバー(Microsoftによって認証される。この操作はオンラインまたは電話で一度だけ実行)と、KMSサーバーへ認証リクエストを送信するKMSクライアントで構成されます。デスクトップ/サーバー向けのMicrosoft OSやMS Officeが、KMSサーバーのクライアントとなれます。

KMSサーバーは、特別な法人向けキーであるCSVLKキー(KMSホストキー)を使って認証します。このキーは、Microsoft Volume Licensingサイト(https://www.microsoft.com/Licensing/servicecenter/default.aspx)から入手できます。サイトにログイン後、「Microsoft Volume Licensing Service Center」→「License」→「Relationship Summary」→「Product Keys」と進み、Windows Srv 2019 DataCtr/Std KMS用のKMSホストキーをコピーしてください。

入手したCSVLKキーをKMSサーバーの設定に入力し、インターネット経由でMicrosoftのサーバーに対してKMSサーバーを認証します。KMSサーバーの認証は一度だけでOKです(最新のWindowsバージョンに対応した新しいCSVLKキーを追加して認証したい場合は、再認証が必要になります)。

Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

1台のKMSサーバーで認証できるクライアント数に上限はありません。たとえば、契約上は100台分のデスクトップPCライセンスを購入していても、理論上は数千件のWindows認証が可能です(もちろんこれはライセンス契約違反ですが、技術的にはKMSサーバー側で認証回数を制限していません)。また、実行済みの認証情報やその件数が、KMSサーバーから社外のネットワークへ送信されることはありません。

Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

KMSサーバーは、異なるドメインのクライアントや、ワークグループ環境のクライアントも認証できます。さらに、1台のKMSサーバーでWindowsデスクトップ版・Windows Server・Microsoft Officeスイートを同時に認証することも可能です。

KMSサーバーを導入すると、DNSに特殊なSRVレコード(_VLMCS)が自動登録されます。ドメイン内のクライアントは、このDNSレコードを参照してADドメイン内のKMSサーバー名を特定できます。たとえば、corp.woshub.comドメイン内のKMSサーバー名を手動で確認するには、次のコマンドを実行します。

nslookup -type=srv _vlmcs._tcp.corp.woshub.com

_vlmcs._tcp.corp.woshub.com SRV service location:
priority = 0
weight = 0
port = 1688
svr hostname = ny-kms01.corp.woshub.com
ny-kms01.corp.woshub.com internet address = 10.0.1.100

Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

この出力例では、KMSがny-kms01サーバー上に構築されており、TCPポート1688で応答していることがわかります。

KMSクライアント(WindowsまたはOffice)を認証するには、あらかじめ汎用ボリュームライセンスキーGVLK(Generic Volume License Key)をクライアント側に設定しておく必要があります。GVLKを設定したクライアントは、DNS上でKMSサーバーに対応するSRVレコードを検索し、自動的に認証を行います。

主なMicrosoft製品向けのGVLK一覧は以下の通りです。

  • Windows 7/Windows Server 2008/2008 R2 用GVLK
  • Windows 8.1/Windows Server 2012 R2 用GVLK
  • Windows 10/Windows Server 2016 用GVLK
  • Windows 10 LTSC/Windows Server 2019 用GVLK
  • MS Office 2019/2016 用GVLK
  • MS Office 2013 用GVLK
  • MS Office 2010 用GVLK

新しいKMSホストキーで認証されたKMSサーバーは、それより前のすべてのWindowsバージョンを認証できますが、逆は不可能です。たとえば、Windows Srv 2012 R2 DataCtr/Std KMSキーで認証されたKMSサーバーでは、Windows 10やWindows Server 2016/2019を認証できません。

最新のWindowsを認証するには、新しいCSVLKキーを取得してKMSサーバー上で認証し直す必要があります。

補足: KMS技術の発展形として、Active Directory Based Activation(ADBA)という認証方式もあります。ADBAを使うと、ADドメインに参加しているWindows 8/Windows Server 2012/MS Office 2013以降のクライアントを自動認証できます。専用のKMSサーバーが不要になり、Active Directoryの拡張機能によって認証が処理される仕組みです(冗長性の面では有利ですが、ドメイン非参加のデバイスを認証したいケースには不向きです)。

KMSサーバーの要件

  1. Volume Activation Servicesロールがインストールされたサーバー(またはワークステーション)がKMSホストとなります。Windows Server 2019では、サーバーマネージャーコンソール、または次のPowerShellコマンドでインストールできます。
    Install-WindowsFeature -Name VolumeActivation -IncludeAllSubFeature -IncludeManagementTools

  2. KMSホストに法人用CSVLKキーをインストールし、Microsoftに対してKMSサーバーを認証します。
    slmgr /ipk <kms_host_key_Windows_Server_2019>
    slmgr /ato
    KMSサーバーの認証(初回のみ)を行うには、KMSサーバーからポート80/443経由でMicrosoftのサイトにアクセスできる必要があります。ネットワークが分離された環境では、電話による認証も可能です。各国のMicrosoftサポート電話番号はphone.infファイルに記載されています:get-content C:\windows\System32\sppui\phone.inf
    Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

  3. クライアントとKMSサーバー間のファイアウォールで、ポート1688を開放しておく必要があります。

  4. KMSサーバーでMicrosoftのボリューム製品を認証するには、最低限のKMSクライアント数(認証しきい値)を満たす必要があります。

    • Windows デスクトップOS:25台
    • Windows Server OS:5台
    • MS Office:5台

    補足: 必要に応じて、スクリプトを使ってKMSサーバー上の認証カウンターを増やすことも可能です。

  5. 認証を維持するには、各コンピューターが180日以内に少なくとも1回、KMSサーバーの存在する社内ネットワークに接続して認証を更新する必要があります。180日を過ぎると認証が失効し、Windowsは猶予期間に入ります。既定では、KMSクライアントは7日ごとに認証の更新を試みます。180日以内にKMSサーバーへ接続できないデバイスがある場合は、MAK(Multiple Activation Key)の使用を検討してください。

  6. KMSは負荷の軽いサービスのため、任意のサーバーに役割を配置できます。高可用性構成は必須ではありません。仮にKMSサーバーが数時間〜数日停止しても、業務への影響はほぼありません。

Microsoft OfficeのKMSサーバー認証

KMSサーバー上でMS Office製品を認証するには、専用のMicrosoft Office Volume License Packをインストールする必要があります。使用中のOfficeのバージョンに応じて、対応するバージョンのVolume License Packをダウンロードしてインストールしてください。

KMSサーバーへのOffice用License Packのインストール後、自身のOffice用CSVLKキーを入力して認証します。

Microsoft KMSボリューム認証の完全ガイド:仕組み・要件・トラブルシューティング

MS Office認証の詳細については、以下の関連記事も参考にしてください。

  • Office 2010 のKMS認証
  • Office 2013 のKMS認証
  • Office 2016 のKMS認証

VAMT(Volume Activation Management Tool)

KMSサーバーやプロダクトキーをGUIで管理するには、専用ツールVAMT(Volume Activation Management Tool)を利用できます。

  • VAMTはOSに同梱されておらず、Windows Assessment and Deployment Kit(ADK)に含まれるため、別途インストールが必要です。
  • 動作には.NET Frameworkが必要です。
  • データベースにはSQL Server Expressを使用します。
  • 最新バージョンのVAMT 3.1は、Windows 10やWindows Server 2019を含むすべてのMicrosoft OSでサポートされています。

よくあるKMS認証の問題とトラブルシューティング

  • クライアント側に公開キーGVLKではなく、法人用KMSホストキー(CSVLK)を誤ってインストールしているケース。
  • GVLKキーが、認証対象ホストのOSバージョンと一致していないケース。
  • 最新のMicrosoft製品の認証に対応するため、KMSサーバーの更新が必要なケース(例:Windows 2008 R2稼働のKMSサーバーを更新して、Windows 10やWindows Server 2012 R2の認証に対応させる手順)。
  • 認証時に0xC004F074エラーが出る場合は、DNSにSRVレコード_VLMCS._tcp.woshub.comが存在しないことが原因の可能性があります。DNS管理者がレコードを作成するか、クライアント側でKMSサーバーアドレスを手動指定してください(コマンドは下記参照)。
  • 0xC004F038エラーは、ネットワーク内の認証要求クライアント数がしきい値に達していないことを意味します(前述の「認証しきい値」参照)。最低台数分の認証要求がKMSサーバーに到着すれば、認証が開始されます。
  • KMSサーバーのTCP/1688ポート疎通は、Test-NetConnectionコマンドレットで確認できます:TNC par-kms -Port 1688 -InformationLevel Quiet。ポートが不通の場合、ファイアウォールでブロックされているか、KMSサーバー上のSoftware Protectionサービス(sppsvc)が停止している可能性があります。

SlmgrコマンドによるWindowsのKMS認証

すべてのWindowsバージョンには、OS認証の管理・診断用の組み込みスクリプトslmgr.vbsが用意されています。

Windowsクライアントに公開KMSキー(GVLK)をインストールするには(Windowsのエディションに対応したGVLKを指定)、次のコマンドを使用します。

cscript.exe %windir%\system32\slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

KMSサーバー名と認証ポートを手動で指定する場合:

cscript.exe %windir%\system32\slmgr.vbs /skms kms-srv.woshub.com:1688

指定したKMSサーバーでWindowsを認証するには:

slmgr /ato

Windowsの認証状態を表示するには:

slmgr.vbs /dlv

すべてのライセンス情報(MS Officeの認証状態を含む)を表示するには:

slmgr.vbs /dlv all

補足: ライセンス情報のポップアップウィンドウはスクロールできず、画面に収まらないことがあります。解析しやすくするために、テキストファイルへ出力するのがおすすめです。

cscript.exe %windir%\system32\slmgr.vbs /dlv all > c:\tmp\dlv.txt

KMSライセンスサーバーでMS Officeを手動認証する方法

クライアント上のMS Office製品の認証を管理するには、別のスクリプトospp.vbsを使用します。Officeのインストールフォルダー内にあります(Office 2016の場合、既定では\Program Files\Microsoft Office\Office16フォルダーに格納されています)。

MS Office用にKMSサーバーのアドレスを手動指定するには:

cscript ospp.vbs /sethst:kms-srv.woshub.com

KMSの認証ポートを変更するには:

cscript ospp.vbs /setprt:1689

KMSサーバー上でOfficeを認証するには:

cscript ospp.vbs /act

Office 2016/365の現在の認証状態を確認するには:

cscript ospp.vbs /dstatusall

Microsoft KMS認証技術についてご不明な点があれば、ぜひコメント欄でお知らせください。可能な範囲でお答えいたします。

  1. Microsoft SQL Serverのデータベース互換性レベルとは?確認・変更方法とパフォーマンスへの影響を解説

    データベース互換性レベルは、データベースレベルの設定のひとつで、データベースの動作に大きな影響を与えます。Microsoft® SQL Server®の新バージョンがリリースされるたびに多くの新機能が追加されますが、その多くは新しいキーワードを必要とし、旧バージョンで存在していた動作にも変更をもたらします。最大限の後方互換性を確保するため、Microsoftでは必要に応じて互換性レベルを設定できる仕組みを提供しています。 データベース互換性レベルのデフォルト値 デフォルトでは、すべてのデータベースは、作成元となったmodelデータベースのバージョンから互換性レベルを引き継ぎます。たとえば、SQ

  2. SQL Serverクエリストアとは?設定方法から実行プランの強制まで徹底解説

    Microsoft® SQL Server® のクエリストア(Query Store)は、その名のとおり、データベース上で実行されたクエリの履歴、ランタイム実行統計、実行プランを「保管庫」のように記録してくれる機能です。収集されたデータはディスク上に保存されるため、トラブルシューティングが必要になったときにいつでも参照でき、SQL Server を再起動してもデータは失われません。SQL Server 2016 で導入され、それ以降のすべてのエディションで利用可能なクエリストアを活用すれば、クエリプランの変更に起因するパフォーマンス問題の切り分けが格段に容易になります。 はじめに パフォーマン