DNS に関連するライセンス認証の問題のトラブルシューティングに関するガイドライン
次の条件の 1 つ以上に該当する場合は、これらの方法のいくつかを使用する必要があります。
- ボリューム ライセンス メディアとボリューム ライセンス汎用プロダクトキーを使用して、次のいずれかのオペレーティング システムをインストールします。
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2
- Windows Server 2008
- Windows 10
- Windows 8.1
- Windows 8
- ライセンス認証ウィザードから KMS ホスト コンピューターに接続できません。
クライアント システムをライセンス認証しようとすると、ライセンス認証ウィザードでは、DNS を使用して KMS ソフトウェアを実行している対応するコンピューターを検索します。 ウィザードで DNS が照会され、KMS ホスト コンピューターの DNS エントリが見つからない場合、ウィザードからはエラーが報告されます。
次の一覧を確認し、お客様の状況に合った方法を見つけてください。
- KMS ホストをインストールできない場合、または KMS ライセンス認証を使用できない場合は、「プロダクト キーを MAK に変更する」の手順を試してください。
- KMS ホストをインストールして構成する必要がある場合は、「ライセンス認証するクライアントに合わせて KMS ホストを構成する」の手順を実行します。
- クライアントで既存の KMS ホストを見つけられない場合は、次の手順でルーティング構成のトラブルシューティングを行います。 これらの手順は、最も簡単なものから最も複雑なものの順に並べています。
プロダクト キーを MAK に変更する
KMS ホストをインストールできない場合、または何らかの理由で KMS ライセンス認証を使用できない場合は、プロダクト キーを MAK に変更します。 Windows イメージを Microsoft Developer Network (MSDN) または TechNet からダウンロードした場合、メディアの下に記載されている Stock Keeping Unit (SKU) は、一般にボリューム ライセンスが付与されたメディアであり、表示されているプロダクト キーは MAK キーです。
プロダクト キーを MAK に変更するには、次の手順を実行します。
- 管理者特権のコマンド プロンプト ウィンドウを開きます。 これを行うには、Windows ロゴ キーを押しながら X キーを押し、 [コマンド プロンプト] を右クリックして、 [管理者として実行] を選択します。 管理者パスワードまたは確認入力を求められた場合は、パスワードを入力するか、確認入力を行います。
- コマンド プロンプトで次のコマンドを実行します。
slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
注意
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx のプレースホルダーは、MAK プロダクト キーを表します。
ライセンス認証するクライアントに合わせて KMS ホストを構成する
KMS ライセンス認証を使用するには、ライセンス認証するクライアントに合わせて KMS ホストを構成する必要があります。 環境に KMS ホストが構成されていない場合は、KMS ホストをインストールし、適切な KMS ホスト キーを使用してライセンス認証します。 KMS ソフトウェアをホストするようにネットワーク上のコンピューターを構成した後、ドメイン ネーム システム (DNS) の設定を公開します。
KMS ホストの構成プロセスの詳細については、「キー管理サービスによるライセンス認証」と「VAMT のインストールと構成」を参照してください。
DNS サーバーへの基本的な IP 接続を確認する
ping コマンドを使用して、DNS サーバーへの基本的な IP 接続を確認します。 これを行うには、エラーが発生している KMS クライアントと KMS ホスト コンピューターの両方で、次の手順を実行します。
- 管理者特権のコマンド プロンプト ウィンドウを開きます。
- コマンド プロンプトで次のコマンドを実行します。
ping <DNS_Server_IP_address>
注意
このコマンドからの出力に "Reply from" という語句が含まれていない場合は、この記事の他の手順を実行する前に解決する必要があるネットワークの問題または DNS の問題があります。 DNS サーバーに対して ping が失敗した場合の TCP/IP の問題のトラブルシューティング方法については、「TCP/IP の問題に関する高度なトラブルシューティング」を参照してください。
KMS ホストの構成を確認する
KMS ホスト サーバーのレジストリを調べて、DNS に登録されているかどうかを確認します。 既定で、KMS ホスト サーバーでは、24 時間に 1 回、DNS SRV レコードが動的に登録されます。
重要
慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。
この設定を確認するには、次の手順を実行します。
- レジストリ エディターを起動します。 これを行うには、 [スタート] を右クリックし、 [ファイル名を指定して実行] を選択して「regedit」と入力し、Enter キーを押します。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform サブキー (Windows Server 2008 と Windows Vista では以前は SoftwareProtectionPlatform ではなく SL) を探し、DisableDnsPublishing エントリの値を確認します。 このエントリには、次の有効な値があります。
- 0 または未定義 (既定値): KMS ホストサーバーで 24 時間ごとに SRV レコードが登録されます。
- 1:KMS ホストサーバーでは、自動的に SRV レコードが登録されません。 動的更新がサポートされていない実装の場合は、「KMS SRV レコードを手動で作成する」を参照してください。
- DisableDnsPublishing エントリがない場合は作成します (型は DWORD です)。 動的登録を許容できる場合は、値を未定義のままにするか、0 に設定します。
ルーティングの問題の種類を特定する
次のコマンドを使用すると、名前解決の問題か SRV レコードの問題かを判断できます。
KMS クライアントで、管理者特権でのコマンド プロンプト ウィンドウを開きます。
コマンド プロンプトで次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <KMS_FQDN>:<port> cscript \windows\system32\slmgr.vbs -ato
注意
このコマンドの <KMS_FQDN> は、KMS ホスト コンピューターの完全修飾ドメイン名 (FQDN) を表し、<port> は KMS が使用する TCP ポートを表します。
これらのコマンドで問題が解決する場合、これは SRV レコードの問題です。 「KMS クライアントに KMS ホストを手動で割り当てる」の手順に記載されているコマンドのいずれかを使用して解決できます。
問題が引き続き発生する場合は、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <IP Address>:<port> cscript \windows\system32\slmgr.vbs -ato
注意
このコマンドで、<IP Address> は KMS ホスト コンピューターの IP アドレスを表し、<port> は KMS が使用する TCP ポートを表します。
これらのコマンドで問題が解決する場合、最も可能性の高いものは名前解決の問題です。 トラブルシューティングの詳細については、「DNS 構成を確認する」の手順を参照してください。
これらのコマンドのいずれでも問題が解決しない場合は、コンピューターのファイアウォール構成を確認します。 KMS クライアントと KMS ホストの間で行われるライセンス認証の通信には 1688 TCP ポートが使用されます。 KMS クライアントと KMS ホストの両方のファイアウォールで、ポート 1688 での通信が許可されている必要があります。
DNS 構成を確認する
注意
特に明記されていない限り、該当するエラーが発生した KMS クライアントで次の手順を実行します。
- 管理者特権でのコマンド プロンプト ウィンドウを開きます
- コマンド プロンプトで次のコマンドを実行します。
IPCONFIG /all
- コマンドの結果から、次の情報を確認します。
- KMS クライアント コンピューターの割り当て済み IP アドレス
- KMS クライアント コンピューターに使用されるプライマリ DNS サーバーの IP アドレス
- KMS クライアント コンピューターに使用される既定のゲートウェイの IP アドレス
- KMS クライアント コンピューターに使用される DNS サフィックス検索一覧
- KMS ホスト SRV レコードが DNS に登録されていることを確認します。 これを行うには、次の手順に従います。
- 管理者特権のコマンド プロンプト ウィンドウを開きます。
- コマンド プロンプトで次のコマンドを実行します。
nslookup -type=all _vlmcs._tcp>kms.txt
- コマンドで生成された KMS .txt ファイルを開きます。 このファイルには、次のエントリのようなエントリが 1 つ以上含まれています。
_vlmcs._tcp.contoso.com SRV service location: priority = 0 weight = 0 port = 1688 svr hostname = kms-server.contoso.com
注意
このエントリで、contoso.com は KMS ホストのドメインを表します。
- KMS ホストの IP アドレス、ホスト名、ポート、およびドメインを確認します。
- これらの _vlmcs エントリが存在し、必要な KMS ホスト名が含まれている場合は、「KMS クライアントに KMS ホストを手動で割り当てる」に進みます。
注意
nslookup コマンドで KMS ホストが検出されても、DNS クライアントで KMS ホストを検出できるとは限りません。 nslookup コマンドで KMS ホストが検出されても KMS ホストを使用してライセンス認証できない場合は、プライマリ DNS サフィックスや DNS サフィックスの検索一覧など、他の DNS 設定を確認します。
- プライマリ DNS サフィックスの検索一覧に、KMS ホストに関連付けられた DNS ドメイン サフィックスが含まれていることを確認します。 検索一覧にこの情報が含まれていない場合は、「複数の DNS ドメインに公開するように KMS ホストを構成する」の手順に進みます。
KMS SRV レコードを手動で作成する
Microsoft DNS サーバーを使用する KMS ホストの SRV レコードを手動で作成するには、次の手順を実行します。
- DNS サーバーで、DNS マネージャを開きます。 DNS マネージャーを開くには、 [スタート] を選択し、 [管理ツール] を選択してから、 [DNS] を選択します。
- SRV リソース レコードを作成する DNS サーバーを選択します。
- コンソール ツリーで、 [前方参照ゾーン] を展開し、ドメインを右クリックして、 [その他の新しいレコード] を選択します。
- 一覧を下にスクロールし、[サービス ロケーション (SRV)] を選択して、[レコードの作成] を選択します。
- 次の情報を入力します。
- サービス: _VLMCS
- プロトコル: _TCP
- ポート番号:1688
- このサービスを提供しているホスト: <KMS ホストの FQDN>
- 完了したら、 [OK] を選択し、 [完了] を選択します。
BIND 9.x 準拠の DNS サーバーを使用する KMS ホストの SRV レコードを手動で作成するには、その DNS サーバーの指示に従って、SRV レコードの次の情報を指定します。
- 名前: _vlmcs._TCP
- 種類: SRV
- 優先度:0
- 重み:0
- ポート:1688
- ホスト名: <KMS ホストの FQDN または A 名>
KMS の自動公開をサポートするように BIND 9.x 互換の DNS サーバーを構成するには、KMS ホストからのリソース レコードの更新を有効にするように DNS サーバーを構成します。 たとえば、Named.conf または Named.conf.local のゾーン定義に次の行を追加します。
allow-update { any; };
KMS クライアントに KMS ホストを手動で割り当てる
既定では、KMS クライアントでは自動検出プロセスが使用されます。 このプロセスに従って、KMS クライアントでは、クライアントのメンバーシップ ゾーン内で _vlmcs
SRV レコードを公開したサーバーの一覧が DNS に照会されます。 DNS からは、KMS ホストの一覧がランダムな順序で返されます。 クライアントで KMS ホストが選択され、そのホスト上でセッションの確立が試行されます。 この試行が成功すると、クライアントでは KMS ホストの名前がキャッシュされ、次回の更新の試行時にその使用が試行されます。 セッションのセットアップが失敗した場合、クライアントでは別の KMS ホストがランダムに選択されます。 自動検出プロセスを使用することを強くお勧めします。
ただし、KMS ホストを特定の KMS クライアントに手動で割り当てることができます。 これを行うには、次の手順に従います。
- KMS クライアントで、管理者特権でのコマンド プロンプト ウィンドウを開きます。
- 実装に応じて、次のいずれかの手順を実行します。
- ホストの FQDN を使用して KMS ホストを割り当てるには、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <KMS_FQDN>:<port>
- ホストのバージョン 4 IP アドレスを使用して KMS ホストを割り当てるには、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <IPv4Address>:<port>
- ホストのバージョン 6 IP アドレスを使用して KMS ホストを割り当てるには、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <IPv6Address>:<port>
- ホストの NETBIOS 名を使用して KMS ホストを割り当てるには、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -skms <NETBIOSName>:<port>
- KMS クライアントで自動検出に戻すには、次のコマンドを実行します。
cscript \windows\system32\slmgr.vbs -ckms
注意
これらのコマンドには、次のプレースホルダーが使用されています。
- <KMS_FQDN> は、KMS ホスト コンピューターの完全修飾ドメイン名 (FQDN) を表します
- <IPv4Address> は、KMS ホスト コンピューターの IP バージョン 4 アドレスを表します
- <IPv6Address> は、KMS ホスト コンピューターの IP バージョン 6 アドレスを表します
- <NETBIOSName> は、KMS ホスト コンピューターの NETBIOS 名を表します
- <port> は、KMS が使用する TCP ポートを表します。
- ホストの FQDN を使用して KMS ホストを割り当てるには、次のコマンドを実行します。
複数の DNS ドメインに公開するように KMS ホストを構成する
重要
慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。
「KMS クライアントに KMS ホストを手動で割り当てる」で説明されているように、通常、KMS クライアントでは自動検出プロセスを使用して KMS ホストが識別されます。 このプロセスを実行するには、KMS クライアントコンピューターの DNS ゾーン内の _vlmcs
SRV レコードを使用できる必要があります。 DNS ゾーンは、コンピューターのプライマリ DNS サフィックス、または次のいずれかに対応します。
- ドメインに参加しているコンピューターの場合、DNS システム (Active Directory Domain Services (AD DS) DNS など) によって割り当てられたコンピューターのドメイン。
- ワークグループ コンピューターの場合、コンピューターのドメインは動的ホスト構成プロトコル (DHCP) によって割り当てられます。 このドメイン名は、Request for Comments (RFC) 2132 で定義されているように、コード値が 15 のオプションによって定義されています。
既定で、KMS ホストでは、KMS ホスト コンピューターのドメインに対応する DNS ゾーンに SRV レコードが登録されます。 たとえば、KMS ホストが contoso.com ドメインに参加しているとします。 このシナリオでは、KMS ホストでは、contoso.com DNS ゾーン以下に _vlmcs
SRV レコードが登録されます。 そのため、レコードでは、サービスが _VLMCS._TCP.CONTOSO.COM
として識別されます。
KMS ホストと KMS クライアントが異なる DNS ゾーンを使用している場合、複数の DNS ドメインで SRV レコードを自動的に公開するように KMS ホストを構成する必要があります。 これを行うには、次の手順に従います。
- KMS ホスト上でレジストリ エディターを起動します。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform サブキー (Windows Server 2008 と Windows Vista では以前は SoftwareProtectionPlatform ではなく SL) を探します。
- [詳細] ウィンドウで空白の領域を右クリックし、 [新規作成] をクリックして、 [複数行文字列値] を選択します。
- 新しいエントリの名前として、「DnsDomainPublishList」と入力します。
- 新しい DnsDomainPublishList エントリを右クリックし、 [変更] を選択します。
- [複数行文字列の編集] ダイアログ ボックスで、KMS から公開される各 DNS ドメイン サフィックスを別の行に入力し、 [OK] を選択します。
注意
Windows Server 2008 R2 では、DnsDomainPublishList の形式が異なります。 詳細については、ボリューム ライセンス認証のテクニカル リファレンス ガイドを参照してください。
- [サービス] 管理ツールを使用し、ソフトウェア保護サービスを再起動します (Windows Server 2008 および Windows Vista の以前のソフトウェア ライセンス サービス)。 この操作で SRV レコードが作成されます。
- 一般的な方法を使用して、KMS クライアントから、構成した KMS ホストに接続できることを確認します。 KMS クライアントで、名前と IP アドレスの両方で KMS ホストが正しく識別されることを確認します。 これらのいずれかの確認に失敗する場合は、この DNS クライアント リゾルバーの問題を調べます。
- KMS クライアント上で以前にキャッシュされた KMS ホスト名をクリアするには、KMS クライアントで管理者特権でのコマンド プロンプト ウィンドウを開き、次のコマンドを実行します。
cscript C:\Windows\System32\slmgr.vbs -ckms