Windows 8  
疑問 Windows 8のボリュームアクティベーション とはどう言うものだろうか?

 KMS(Key Management Service)を使用する方法!

調査 Windows Vistaよりボリュームライセンス製品についてボリュームアクティベーション(詳細はここ)が導入されましたが、Windows8のボリュームライセンス製品(Pro, Enterprise Edition)についても変更な無い模様です。
KMS(Key Management Service)を簡単に説明すると、アクティベーション(認証)を行う場合にマイクロソフトに繋いでライセンス認証するのではなく、ネットワーク上の代理アクティベーションサーバー(KMSサーバー)にてライセンス認証を行う方式とのことです。

ここで、Windows 8向けのKMSサーバーを構築してみたいと思いますが、注意点があります。
1. KMSサーバーで認証できるボリュームライセンス製品には制限があり、以下の様になります。
KMSサーバーの種類 KMSサーバーとして構築できるWindowsのバージョン 認証できるWindowsエディション
クライアントOS Windows Vista
Windows 7
Windows 8
Windows Vista Business
Windows Vista Enterprise
Windows 7 Professional
Windows 7 Enterprise
Windows 8 Professional
Windows 8 Enterprise
サーバーOS Windows Server 2008
Windows Server 2008 R2
Windows Server 2012 Standard
Windows Server 2012 Datacenter
Windows Vista Business
Windows Vista Enterprise
Windows 7 Professional
Windows 7 Enterprise
Windows 8 Professional
Windows 8 Enterprise
Windows Server 2008 (全てのエディション)
Windows Server 2008 R2 (全てのエディション)
Windows Server 2012 (全てのエディション)

2. KMSライセンス認証を行うには、ネットワークに最小限の数の物理コンピューターもしくは仮想コンピューターが必要。
認証するWindowsエディションがクライアントOS(Windows Vista, 7, 8)の場合は25台以上、サーバーOS(Windows Server 2008, 2012)の場合は5台以上。
KMSサーバーは、ネットワーク上でライセンス認証を要求している物理コンピューターおよび仮想コンピューターの数が上記の数を満たす場合に、ライセンス認証が行われます。
また、ライセンス認証の要求も一定期間(たぶん30日)されないとKMSサーバーのライセンス認証の要求の記録が削除されます。

3. KMSサーバーを使用したKMSライセンス認証は、180 日間有効。
少なくとも180日ごとに1回KMSサーバーに接続してライセンス認証を更新する必要があります。

4. KMSサーバーで認証を行う場合、TCPの1688ポートを使用しますので(変更は可能ですが・・・)、KMSサーバー側のファイアウォールの設定をする必要があります。




では早速、KMSサーバーを構築してみましょう。

KMSサーバーの構築
Windows 8 Pro Edition(Enterprise Editionでも可)をKMSキー(ボリュームライセンスサービスセンター(VLSC)(旧eOpen)にて入手)にてインストールし、ライセンス認証を行います。
”c:\windows\system32\slmgr.vbs -dlv” にて状態を確認してみると

当然ですが、”現在の数: 0”です。

KMSサーバーで認証を行う場合、TCPの1688ポートを使用しますので、KMSサーバー側のファイアウォールの設定を行います。
コントロールパネル - Windows ファイアウォール - Windows ファイアウォールを介したアプリまたは機能を許可 と進み、"キー管理サービス"にチェックをいれます。


以上でKMSサーバーの構築が完了しました。


試しにWindows 8 ProのKMS認証をしてみます。
1. 別途、Windows 8 Pro Editionを”KMS Client Setup Keys”を使ってインストールします。(こちらを参照)
 KMSクライアントのセットアップキー
  Windows 8 Professional : NG4HW-VH26C-733KW-K6F98-J8CK4
  Windows 8 Enterprise : 32JNW-9KQ84-P47T8-D8GGY-CWCK7

インストール後、コマンドプロンプトを管理者として実行し、KMSサーバーを下記の様に登録し、ライセンス認証を行います。
 c:\windows\system32\slmgr.vbs -skms [ip address of kms server]
 c:\windows\system32\slmgr.vbs -ato
認証するWindowsエディションがクライアントOS(Windows Vista, 7, 8)の場合は25台以上が必要ですので、当然ですが”台数が足りない”と言う意味のメッセージがでて、ライセンス認証に失敗しました。

2. 再度KMSサーバーにて”c:\windows\system32\slmgr.vbs -dlv” にて状態を確認してみると

現在の数: 1”になりました。

3. 本来はここで、残り24台のクライアント(物理コンピューターおよび仮想コンピューター)を用意しないといけませんが、素晴らしいツールが海外にありました。
KMS Client Emulator(KMSClient.exe)(詳細はここ)と言うもので、KMSサーバーに対し、認証要求のみを自動的に必要回数行ってくれるツールです。

コマンドプロンプトにて以下の様に実行します。
KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Windows
 ※使用するポートNo.は既定では1688
↑"KMSClient.exe"を"C:\tool"に保存し、KMSサーバーのIPアドレスを"192.168.1.5"としています。


このツールはOffice2010, 2012のKMS認証にも対応しており、その場合はコマンドプロンプトにて以下の様に実行します。
KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2010
KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2012

4. 再度KMSサーバーにて”c:\windows\system32\slmgr.vbs -dlv” にて状態を確認してみると

現在の数: 25”になっています。
5. 再度、最初に用意したWindows 8 Proのライセンス認証を行います。
 c:\windows\system32\slmgr.vbs -ato

無事、ライセンス認証がされました。

最初にも書きましたがクライアントからのライセンス認証の要求も一定期間(たぶん30日)されないとKMSサーバーのライセンス認証の要求の記録が削除されます。
その場合は再度、KMS Client Emulator(KMSClient.exe)を実行してKMSサーバーの"現在の数"を25以上に保つ必要があります。




<補足0>
Windows 7, Windows 8, Windows Server 2012の場合、認証情報を以下のファイルで管理されています。
同一コンピューター(構成が同じ)の場合、再度インストールをし直しても認証後のこのファイルを上書きすることにより認証済みとなります。
(WindowsXPでの説明ですが、再認証が発生する要件はここ)

Windows7の認証情報ファイル : %SystemDrive%\Windows\ServiceProfiles\NetWorkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat
Windows8の認証情報ファイル : %SystemDrive%\Windows\System32\spp\store\tokens.dat
%SystemDrive%\Windows\System32\spp\store\data.dat
Windows Server 2012の認証情報ファイル : %SystemDrive%\Windows\System32\spp\store\tokens.dat
%SystemDrive%\Windows\System32\spp\store\data.dat

この性質を利用して海外にてWindows 7 Professional, Windows 8(Pro, Enterprise共用), Windows Server 2012 Standard のVMware用KMSサーバーの上記ファイルが公開されました。(必要なファイルはここで手に入ります。)



<補足1>
VMware上にてWindows 7 Professional(SP1) でのKMSサーバーの構築
0. 最初にWindows 7 Professional(SP1) のVMwareでのKMSサーバーの認証情報ファイルを手に入れる必要があります。
何種類かあるようですが、ここから"wes7-kms.zip"をダウンロードして解凍します。
解凍後に"wes7-kms.iso"がありますので、このファイルを展開(解凍)します。
その中より"setupcomplete.cmd"、"vmware.dat"を取り出し、"setupcomplete.txt"、"tokens.dat"とリネームします。
"tokens.dat"が認証情報ファイルで、"setupcomplete.txt"には途中で必要はプロダクトキーが記載されています。

1. VMwareにてWindows 7 Professional(SP1)をインストールします。

2. Windows 7用のキー マネージメントサービス (KMS)をインストールします。
更新プログラムのKB2757817がそれに当たり、ここよりダウンロードして実行。
ついでに、Office2010, Office2012用のキー マネージメントサービス (KMS)もインストールします。
 Microsoft Office 2010 KMSホストライセンスパック : ここよりダウンロード
 Microsoft Office 2013 ボリュームライセンスパック  : ここよりダウンロード

3. 次にKMSサーバー用のプロダクトキーをコマンドプロンプトにてインストールします。Windows用、Office2010用、Office2013用の3つのキーのインストールが必要です。
  ※ここで使うプロダクトキーは最初に用意した"setupcomplete.txt"に記載されているものを使います。
 c:\windows\system32\slmgr.vbs -ipk *****-*****-*****-*****-B4W3F (Windows用)
 c:\windows\system32\slmgr.vbs -ipk *****-*****-*****-*****-RP3HH (Office2010用)
 c:\windows\system32\slmgr.vbs -ipk *****-*****-*****-*****-BT4WM (Office2013用)

4. ここで、一度Windowsを終了してVMwareの設定ファイル(*.vmx)をノートパッド等のテキストエディタで開いて"uuid.bios"の値を以下の値に変更します。
 uuid.bios = "56 4d 81 c6 cd 3a d8 e4-db 29 75 6d f1 39 ac b9"

5. 再度、Windows 7を起動して認証情報ファイルを上書きします。
まず管理者権限でのコマンドプロントにて "net stop sppsvc"を実行してSoftware Protection サービスを停止させます。
次に、%SystemDrive%\Windows\ServiceProfiles\NetWorkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat を最初に用意した"tokens.dat"にて上書きします。
上書き後に管理者権限でのコマンドプロントにて "net start sppsvc"を実行してSoftware Protection サービスを開始します。

6. KMSサーバーで認証を行う場合、TCPの1688ポートを使用しますので、KMSサーバー側のファイアウォールの設定を行います。
コントロールパネル - Windows ファイアウォール - Windows ファイアウォールを介したアプリまたは機能を許可 と進み、"キー管理サービス"にチェックをいれます。

7. これでKMSサーバーの構築が完了しました。
問題なく構築できているかコマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd



現在の数: 0”ですが、Windows、Office2010、Office2013の各KMSサーバーのライセンスは認証されている状況です。
もしここで、ライセンス認証されていない場合は、上記項目3と項目5を再度実行して下さい。(私の場合は何度挑戦にても上記項目3と項目5を2回実行する必要がありました。)

8. 最初にも書きましたがKMSサーバーの"現在の数"はWindows Vista, 7, 8の場合25以上、Office2010,2012は5以上必要ですので、KMS Client Emulator(KMSClient.exe)を実行してKMSサーバーの"現在の数"を確保します。コマンドプロンプトにて以下を実行します。
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Windows
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2010
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2012
↑"KMSClient.exe"を"C:\tool"に保存し、KMSサーバー上にて実行しています。

再度コマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd


"現在の数"が必要数になりました。



<補足2>
VMware上にてWindows 8 Pro でのKMSサーバーの構築
0. 最初にWindows 8 Pro のVMwareでのKMSサーバーの認証情報ファイルを手に入れる必要があります。
何種類かあるようですが、ここから"ATM v3.5 RC 2 Backup KMS HOST W8 O14 O15.rar"をダウンロードして解凍します。
その中の"tokens.dat"と"data.dat"が認証情報ファイルで、"config.ini"には途中で必要はプロダクトキーが記載されています。
※本来手に入れたファイルは"Advanced Tokens Manager"を使って、プロダクトキーのインストールと認証情報ファイルの差し替えを行う事ができます。
 今回は"Advanced Tokens Manager"を使わずに手動で行います。

1. VMwareにてWindows 8 Proをインストールします。

2. 次にKMSサーバー用のプロダクトキーをコマンドプロンプトにてインストールします。Windows用のキーのみのインストールが必要です。
  ※ここで使うプロダクトキーは最初に用意した"config.ini"に記載されているものを使います。
 c:\windows\system32\slmgr.vbs -ipk *****-*****-*****-*****-B4W3F)

4. ここで、一度Windowsを終了してVMwareの設定ファイル(*.vmx)をノートパッド等のテキストエディタで開いて"uuid.bios"の値を以下の値に変更します。
 uuid.bios = "56 4d 8d c4 7a 7f 00 75-8f 9b 1b f6 f6 4c ed 2b"

5. 再度、Windows 8を起動して認証情報ファイルを上書きします。
まず管理者権限でのコマンドプロントにて "net stop sppsvc"を実行してSoftware Protection サービスを停止させます。
次に、%SystemDrive%\Windows\System32\spp\store に最初に用意した"tokens.dat"と"data.dat"を上書きします。
上書き後に管理者権限でのコマンドプロントにて "net start sppsvc"を実行してSoftware Protection サービスを開始します。

6. KMSサーバーで認証を行う場合、TCPの1688ポートを使用しますので、KMSサーバー側のファイアウォールの設定を行います。
コントロールパネル - Windows ファイアウォール - Windows ファイアウォールを介したアプリまたは機能を許可 と進み、"キー管理サービス"にチェックをいれます。

7. これでKMSサーバーの構築が完了しました。
問題なく構築できているかコマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd



現在の数: 0”ですが、Windows、Office2010、Office2013の各KMSサーバーのライセンスは認証されている状況です。

8. 最初にも書きましたがKMSサーバーの"現在の数"はWindows Vista, 7, 8の場合25以上、Office2010,2012は5以上必要ですので、KMS Client Emulator(KMSClient.exe)を実行してKMSサーバーの"現在の数"を確保します。コマンドプロンプトにて以下を実行します。
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Windows
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2010
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2012
↑"KMSClient.exe"を"C:\tool"に保存し、KMSサーバー上にて実行しています。

再度コマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd


"現在の数"が必要数になりました。



<補足3>
VMware上にてWindows Server 2012 Standerd でのKMSサーバーの構築
0. 最初にWindows Server 2012 のVMwareでのKMSサーバーの認証情報ファイルを手に入れる必要があります。
何種類かあるようですが、ここから"WinServer2012KMS.zip"をダウンロードして解凍します。
その中の"tokens.dat"と"data.dat"が認証情報ファイルとなります。

1. VMwareにてWindows Server 2012 Standerdをインストールします。

2. 次にインストールに使用したプロダクトキーをコマンドプロントにて以下を実行して削除します。
 c:\windows\system32\slmgr.vbs -cpky

4. ここで、一度Windowsを終了してVMwareの設定ファイル(*.vmx)をノートパッド等のテキストエディタで開いて"uuid.bios"の値を以下の値に変更します。
 uuid.bios = "56 4d dc 18 57 75 e5 78-28 be c1 7d d2 67 73 72"

5. 再度、Windows Server 2012を起動して認証情報ファイルを上書きします。
まず管理者権限でのコマンドプロントにて "net stop sppsvc"を実行してSoftware Protection サービスを停止させます。
次に、%SystemDrive%\Windows\System32\spp\store に最初に用意した"tokens.dat"と"data.dat"を上書きします。
上書き後に管理者権限でのコマンドプロントにて "net start sppsvc"を実行してSoftware Protection サービスを開始します。

6. KMSサーバーで認証を行う場合、TCPの1688ポートを使用しますので、KMSサーバー側のファイアウォールの設定を行います。
コントロールパネル - Windows ファイアウォール - Windows ファイアウォールを介したアプリまたは機能を許可 と進み、"キー管理サービス"にチェックをいれます。

7. これでKMSサーバーの構築が完了しました。
問題なく構築できているかコマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd



現在の数: 0”ですが、Windows、Office2010、Office2013の各KMSサーバーのライセンスは認証されている状況です。

8. 最初にも書きましたがKMSサーバーの"現在の数"はWindows Vista, 7, 8の場合25以上、Office2010,2012は5以上必要ですので、KMS Client Emulator(KMSClient.exe)を実行してKMSサーバーの"現在の数"を確保します。コマンドプロンプトにて以下を実行します。
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Windows
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2010
 KMSClient.exe [使用するポートNO.] [KMSサーバーのIPアドレス] Office2012
↑"KMSClient.exe"を"C:\tool"に保存し、KMSサーバー上にて実行しています。

再度コマンドプロントにて以下を実行します。
 c:\windows\system32\slmgr.vbs -dlv
 c:\windows\system32\slmgr.vbs -dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864
 c:\windows\system32\slmgr.vbs -dlv 2e28138a-847f-42bc-9752-61b03fff33cd


"現在の数"が必要数になりました。
このKMSサーバーのみWindows Server 2008, 2008 R2, 2012も認証することができます。

〈2013.3.4追記〉
久しぶりに再度Windows Server 2012にてKMSサーバーを構築した所、上記7の後で"現在の数"を増やそうとしましたが、"Runtime reported exception 0x6ba = 1722"と言うエラーがでて増やす事が出来なくなりました。これは、KMS Client Emulator(KMSClient.exe)を使用した場合も、別途用意したWindows8で認証しようとした場合も同じでした。
原因は"Software Protection サービス"がうまく機能していない様なのですが・・・。 最初に参考にしたMy Digital Life Forumsでは、以下のレジストリーの追加も必要と書かれていた事を思い出して追加したところ"現在の数"を増やす事が出来るようになりました。※レジストリーへの追加の後に再起動(orログオフ)が必要です。


Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform]
"KmsHostConfig"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform]
"KeyManagementServiceVersion"="6.2.9200.16384"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform]
"KeyManagementServiceVersion"="6.2.9200.16384"


最初にこのレジストリーの追加の要否を確認したのですが・・・、不十分だったみたいです。








戻る




PRESENTED by hiroji