Google Cloud (旧称 GCP) の仮想サーバーサービスである Compute Engine では Windows Server を起動することができます。
Windows Server の VM で、ライセンス認証に関するエラーが出たときの対処方法をご紹介します。
事象
Compute Engine で起動する Window Server の VM において、コンピュータのプロパティの画面等でライセンス認証が失敗している旨のメッセージが出力されることがあります。
「Windows はライセンス認証されていません」
「組織のライセンス認証サーバーに接続できないため、このデバイスの Windows をライセンス認証できません。組織のネットワークに接続していることを確認して、もう一度やり直してください。ライセンス認証できない場合は、組織のサポート担当者にお問い合わせください。エラーコード: 0xC004F074」
「ライセンス認証に問題がある場合は、トラブルシューティングを選択して問題の解決を試みてください。」
考えられる原因
該当の VM と Google Cloud の持つ Windows Key Management Service (KMS) サーバーの間の通信ができていない ことが原因と考えられます。
Google Cloud の KMS サーバーは kms.windows.googlecloud.com (35.190.247.13)
に存在します。このサーバーと Windows Server VM が TCP 1688 番ポートにて通信できる必要があります。
この通信が失敗する原因として VPC ファイアウォールやルートの問題、または VM が外部 IP アドレスを持っていないなどの理由が挙げられます。
対処方法
1. ルートを確認する
VPC のルート設定として、デフォルトゲートウェイ (0.0.0.0/0) が Default Internet Gateway へ向いているか、個別ルールで 35.190.247.13/32
のネクストホップが Default Internet Gateway へ向いている必要があります。
2. アクセス要件を解決する
VM が kms.windows.googlecloud.com (35.190.247.13)
へ到達するには、以下のいずれかの方法である必要があります。
- 外部 IP アドレスを持っている
- サブネットで 限定公開の Google アクセス が有効である
重要なことに、 KMS へは Cloud NAT 経由では到達できない 仕様となっています (Compute Engine インスタンスの IP アドレス以外からのリクエストは拒否されるためと 説明されています) 。そのため VM に外部 IP アドレスを持たせるか、サブネットで「限定公開の Google アクセス」が有効である必要があるのです。
3. ファイアウォールルールの追加
VPC のファイアウォールルールでも 35.190.247.13/32
への 1688/tcp
における 下り
通信が許可されている必要があります。
デフォルトでは「暗黙の下り許可」ルールが効いているため許可されていますが、厳密なファイアウォールルールを適用している場合は、この通信を明示的・優先的に許可するルールが必要です。
4. ライセンス認証の強制
上記まで実施すれば、 KMS への通信は確保されます。上記がクリアされているのに認証が行われない場合、 VM 上で以下の作業を実施することでライセンス認証を強制させます。
- コマンドプロンプトを「管理者として実行」する
- 下記コマンドを実行して、KMS サーバーへの接続が完了しているかをテストする
powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
- 想定結果
TcpTestSucceeded : True
- 上記コマンドが成功した場合、以下の下記コマンドを実行する (ライセンスの現在の状態を確認 / KMS のサーバー IP アドレスを設定 / ライセンス認証を強制)
cscript \windows\system32\slmgr.vbs /dlv
cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
cscript \windows\system32\slmgr.vbs /ato
参考ドキュメント
杉村 勇馬 (記事一覧)
執行役員 CTO / クラウドソリューション部 部長
元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。
Follow @y_sugi_it