IBM Cloud: Classic InfrastructureのKMS ServerのURL変更に伴うWindows Serverでの対応について

- 2023年4月7日更新。以下のIBM Cloud Blogが発行されました。
[KMSの変更に伴う、Windowsサーバーでの対応について](https://www.ibm.com/blogs/solutions/jp-ja/kms-windows-server/)

# 1. はじめに

IBM CloudのClassic Infrastructureで提供されているWindows Server環境では、Microsoft製品のボリュームライセンスを管理するために、KMS(Key Management Service)ライセンス認証方式を採用しています。これにより、個々のWindows Server（KMSクライアント）は、KMSサーバーに対してライセンス認証を行います。

どうやら、このKMSサーバーのアドレスがここ1-2年の間で変わったようです。従来のアドレスも新アドレスもどちらも並行稼働していましたが、旧アドレスが最近になって遂に利用できなくなりました。

- 旧KMSサーバー（もう利用できない）: `10.0.76.42:1688`
- 新KMSサーバー              : `kms.service.softlayer.com:1688`

最近プロビジョニングされたWindows Serverでは新KMSサーバーを利用していますが、昔から利用しているWindows Server環境では旧KMSサーバーを利用し続けている可能性があります。その結果Windows Updateなどが使えなくなったり、ライセンス認証ができないことによる弊害が現れる可能性があります。追って、IBM Cloudから正式な通知が行われる可能性があるかもしれませんが、本稿では、KMSホストの確認方法や、KMSホストの更新方法について取り急ぎ紹介したいと思います。

# 2. 時刻が正確であることを確認

**Windows Serverでの時刻が大幅にずれているとKMSサーバーとの通信に失敗する**ため、正確な時刻が既に構成済みである必要があります。本稿ではその作業の説明を省略します。

# 3. 現在利用しているKMSサーバーの確認

<img width="50%" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/65e1afc4-6c37-fb1d-fb3d-27629a0315b1.png">

```txt:Window Serverのバージョン確認（一部隠蔽しています）
PS C:\Users\Administrator> Get-WmiObject Win32_OperatingSystem | select Organization, BuildNumber, RegisteredUser, SerialNumber, Version, Caption


Organization   : NetworkLayer
BuildNumber    : 14393
RegisteredUser : NetworkLayer
SerialNumber   : xxxxx-xxxxx-xxxxx-xxxxx
Version        : 10.0.14393
Caption        : Microsoft Windows Server 2016 Standard
```

```txt:現在のライセンス認証の状態と猶予期間の確認（一部隠蔽しています）
PS C:\Users\Administrator> slmgr.vbs /dlv
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Software licensing service version: 10.0.14393.5006

Name: Windows(R), ServerStandard edition
Description: Windows(R) Operating System, VOLUME_KMSCLIENT channel
Activation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Application ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Extended PID: xxxxx-xxxxx-xxx-xxxxxx-xx-xxxx-xxxxx.xxxx-xxxxxxx
Product Key Channel: Volume:xxxx
Installation ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Partial Product Key: xxxxx
License Status: Licensed
Volume activation expiration: 43500 minute(s) (31 day(s))
Remaining Windows rearm count: 1000
Remaining SKU rearm count: 1000
Trusted time: 3/30/2023 12:24:26 PM
Configured Activation Type: All

Most recent activation information:
Key Management Service client information
    Client Machine ID (CMID): xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Registered KMS machine name: 10.0.76.42:1688
    KMS machine IP address: 10.0.76.42
    KMS machine extended PID: xxxxx-xxxxx-xxx-xxxxxx-xx-xxxx-xxxxx.xxxx-xxxxxxx
    Activation interval: 120 minutes
    Renewal interval: 10080 minutes
    KMS host caching is enabled
```

上記の結果より、`Registered KMS machine name`で、`10.0.76.42:1688`が利用されているため、旧KMSサーバーを利用していることがわかります。もし、`kms.service.softlayer.com`が使われているのであれば、この記事をこれ以上読む必要はありません。

# 4. 旧KMSサーバーへの疎通確認

```txt:pingコマンドでの疎通確認（失敗）
PS C:\Users\Administrator> ping 10.0.76.42

Pinging 10.0.76.42 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 10.0.76.42:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
```
```txt:tncコマンドでの疎通確認（失敗）
PS C:\Users\Administrator> tnc 10.0.76.42 -port 1688
WARNING: TCP connect to 10.0.76.42:1688 failed
WARNING: Ping to 10.0.76.42 failed -- Status: TimedOut


ComputerName           : 10.0.76.42
RemoteAddress          : 10.0.76.42
RemotePort             : 1688
InterfaceAlias         : Ethernet 2
SourceAddress          : 10.193.72.205
PingSucceeded          : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False
```

```txt:KMSライセンス認証の試行（失敗）
PS C:\Users\Administrator> slmgr.vbs /ato
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Activating Windows(R), ServerStandard edition (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) ...
Error: 0xC004F074 The Software Licensing Service reported that the computer could not be activated. No Key Management Service (KMS) could be contacted. Please see the Application Event Log for a
dditional information.
```

上記のように、旧KMSサーバーは既に利用できないことがわかります。

# 5. 新KMSサーバーへの疎通確認

```txt:pingコマンドでの疎通確認（成功）
PS C:\Users\Administrator> ping kms.service.softlayer.com

Pinging kms.service.softlayer.com [10.200.80.42] with 32 bytes of data:
Reply from 10.200.80.42: bytes=32 time=139ms TTL=117
Reply from 10.200.80.42: bytes=32 time=139ms TTL=117
Reply from 10.200.80.42: bytes=32 time=139ms TTL=117
Reply from 10.200.80.42: bytes=32 time=139ms TTL=117

Ping statistics for 10.200.80.42:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 139ms, Maximum = 139ms, Average = 139ms
```
```txt:tncコマンドでの疎通確認（成功）
PS C:\Users\Administrator> tnc kms.service.softlayer.com -port 1688


ComputerName     : kms.service.softlayer.com
RemoteAddress    : 10.200.80.42
RemotePort       : 1688
InterfaceAlias   : Ethernet 2
SourceAddress    : 10.193.72.205
TcpTestSucceeded : True
```

# 6. 新KMSサーバーの登録

```txt:新KMSサーバーの登録
PS C:\Users\Administrator> slmgr.vbs /skms kms.service.softlayer.com:1688
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Key Management Service machine name set to kms.service.softlayer.com:1688 successfully.
```
```txt:KMSライセンス認証の試行（成功）
PS C:\Users\Administrator> slmgr.vbs /ato
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Activating Windows(R), ServerStandard edition (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) ...
Product activated successfully.
```
```txt:現在のライセンス認証の状態と猶予期間の確認（一部隠蔽しています）
PS C:\Users\Administrator> slmgr.vbs /dlv
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Software licensing service version: 10.0.14393.5006

Name: Windows(R), ServerStandard edition
Description: Windows(R) Operating System, VOLUME_KMSCLIENT channel
Activation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Application ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Extended PID: xxxxx-xxxxx-xxx-xxxxxx-xx-xxxx-xxxxx.xxxx-xxxxxxx
Product Key Channel: Volume:xxxx
Installation ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Partial Product Key: xxxxx
License Status: Licensed
Volume activation expiration: 259200 minute(s) (180 day(s))
Remaining Windows rearm count: 1000
Remaining SKU rearm count: 1000
Trusted time: 3/30/2023 12:27:53 PM
Configured Activation Type: All

Most recent activation information:
Key Management Service client information
    Client Machine ID (CMID): xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Registered KMS machine name: kms.service.softlayer.com:1688
    KMS machine IP address: 10.200.80.42
    KMS machine extended PID: 03612-04573-000-073623-03-1033-17763.0000-0512023
    Activation interval: 120 minutes
    Renewal interval: 10080 minutes
    KMS host caching is enabled
```

上記の結果より、`Registered KMS machine name`で、`kms.service.softlayer.com:1688`が利用されているため、KMSサーバーが更新されたことがわかります。また、Volume activation expirationが延長されたことがわかります。

以上で作業は終了です。Windows Serverを再起動する必要もありません。