VM Import 指定 License 类型与 License Manager 转换 BYOL
2026/7/3大约 2 分钟
VM Import 指定 License 类型与 License Manager 转换 BYOL
通过 VM Import/Export 导入的 Windows 实例,导入时未指定 --license-type BYOL,默认用了 Amazon 提供的 Windows 授权(产生额外授权费)。事后能转成 BYOL 吗?可以,通过 License Manager 转换。
核心概念
转换资格
| 实例来源 | 能否转 BYOL |
|---|---|
| VM Import/Export 导入的自有 VM | 可以 |
| AWS 提供的 AMI 启动 | 不可以 |
Usage Operation 对照
| Platform Details | Usage Operation | 含义 |
|---|---|---|
| Windows | RunInstances:0002 | Amazon 提供 Windows 授权(收费) |
| Windows BYOL | RunInstances:0800 | 自带 Windows 授权(不收授权费) |
前置条件
- 实例必须是 VM Import 导入的,不能是 AWS AMI 启动的
- 实例已被 SSM Inventory 关联
- 有自己的 KMS 服务器用于 Windows 激活
操作步骤
1. 确认当前 License 类型
aws ec2 describe-instances \
--instance-ids <instance-id> \
--query "Reservations[*].Instances[*].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"确认 UsageOperation 为 RunInstances:0002(license included)。
2. 切换 KMS 地址到自己的 KMS 服务器
转换路径要求必须先修改 Windows KMS 配置指向自己的 KMS:
slmgr.vbs /skms <your-kms-address>3. 停止实例
aws ec2 stop-instances --instance-ids <instance-id>4. 发起许可证类型转换
aws license-manager create-license-conversion-task-for-resource \
--resource-arn arn:aws-cn:ec2:cn-northwest-1:<account-id>:instance/<instance-id> \
--source-license-context UsageOperation=RunInstances:0002 \
--destination-license-context UsageOperation=RunInstances:08005. 监控转换状态
aws license-manager get-license-conversion-task \
--license-conversion-task-id <task-id> \
--query "{Status:Status,StatusMessage:StatusMessage}"状态:IN_PROGRESS → SUCCEEDED(通常 1-2 分钟)。
6. 启动实例并激活 Windows
aws ec2 start-instances --instance-ids <instance-id>RDP 登录后执行激活:
slmgr.vbs /ato7. 验证
aws ec2 describe-instances \
--instance-ids <instance-id> \
--query "Reservations[*].Instances[*].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"预期:PlatformDetails = "Windows BYOL",UsageOperation = "RunInstances:0800"。
控制台路径
License Manager → 许可证类型转换 → 创建 → 源操作系统选 "Windows 随附许可证" → 选实例 → 选目标许可证类型 → 开始转换。
补充:VM Import 时直接指定 BYOL
下次导入时可直接指定,避免事后转换:
aws ec2 import-image \
--license-type BYOL \
--disk-containers "Format=VMDK,UserBucket={S3Bucket=<bucket>,S3Key=<file.vmdk>}"不指定 --license-type 时,Windows Server 默认等同于 --license-type AWS(license included)。
注意事项
- 转换进行中不要 start/stop 实例
- "Windows Server BYOL + SQL Server license included" 是不支持的组合
- 转换后 AMI 的 billing product 字段不会变,查准确计费用
DescribeInstances - 实例必须处于 stopped 状态且已被 SSM Inventory 关联,License Manager 控制台才会显示
