您可以将 Windows Server 虚拟机 (VM) 实例从自带许可 (BYOL) 模式切换到随用随付 (PAYG) 模式。不支持将许可从 PAYG 更改为 BYOL。如需详细了解 Google Cloud上的 Windows Server 许可,请参阅 Google Cloud上的 Microsoft 许可。
如需详细了解许可参考、许可代码以及如何确定允许的许可修改,请参阅许可变更和限制。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
-
- 设置默认区域和可用区。
准备更新磁盘的许可
如需在磁盘挂接到正在运行的实例时更新磁盘的许可,请先关停实例或分离磁盘。
将 BYOL 许可更改为 PAYG 许可
如需将自带许可 (BYOL) 替换为按需付费许可,请使用 Google Cloud CLI 或 Compute Engine API。
gcloud
如需将磁盘的许可替换为许可引用或代码,请使用 gcloud compute disks update 命令:
gcloud compute disks update DISK_NAME \
--replace-license=PREVIOUS_LICENSE,NEW_LICENSE
替换以下内容:
DISK_NAME:要替换的磁盘的名称。PREVIOUS_LICENSE:要替换的之前的许可参考,例如"projects/windows-cloud/global/licenses/windows-server-2016-byol"、"projects/windows-cloud/global/licenses/windows-server-2019-byol"。NEW_LICENSE:新的许可参考,例如"projects/windows-cloud/global/licenses/windows-server-2016-dc"、"projects/windows-cloud/global/licenses/windows-server-2019-dc"。
REST
如需替换磁盘的许可,请将新许可添加到请求正文中,并省略之前的许可。调用以下 disks.update v1 方法:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":["https://www.googleapis.com/compute/v1/NEW_LICENSE"]}'
替换以下内容:
PROJECT:项目的名称ZONE:包含虚拟机的可用区DISK_NAME:磁盘的名称NEW_LICENSE:新的许可参考,例如"projects/windows-cloud/global/licenses/windows-server-2016-dc"、"projects/windows-cloud/global/licenses/windows-server-2019-dc"或许可代码,例如"1000213"、"3389558045860892917"。
激活新的 PAYG 许可
替换磁盘上的许可后,您必须使用 Google Cloud 密钥管理服务 (KMS) 激活操作系统。
如需激活许可,请在 Windows 虚拟机上完成以下步骤:
- 连接到 Windows 虚拟机。
- 以管理员身份打开 PowerShell 终端。
更新 Google Compute Engine sysprep 软件包。这样可确保您拥有包含所需许可代码的最新版激活脚本。
googet -noconfirm update google-compute-engine-sysprep
运行
activate_instance.ps1脚本: 此脚本会检测新的按需付费许可,并配置正确的 KMS 服务器。& "C:\Program Files\Google\Compute Engine\sysprep\activate_instance.ps1"
验证许可变更
如需验证启动磁盘上的许可是否已更改,请按照以下步骤操作:
通过运行
gcloud compute disks describe命令获取启动磁盘的相关信息:gcloud compute disks describe DISK_NAME \ --zone=ZONE \ --format="value(licenses)"替换以下内容:
DISK_NAME:要验证其许可的启动磁盘的名称ZONE:包含要验证其许可的启动磁盘的可用区
验证输出是否类似如下所示:
https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2019-dc