You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform+Cloudbase-Init设置开放电信云Windows ECS密码失败求助

问题

在开放电信云(Open Telekom Cloud)部署Windows ECS实例时,希望通过Cloudbase-Init在实例启动时设置管理员密码,而非使用密钥对。使用Terraform部署的代码如下:

resource "opentelekomcloud_compute_instance_v2" "windows_ecs" {
name              = "test-windows"
flavor_id         = "s3.large.2"
image_name        = "Enterprise_Windows-Server_2022_STD_amd64_uefi_latest"
availability_zone = var.az

network {
  uuid = opentelekomcloud_vpc_subnet_v1.test_subnet.id
}

security_groups = [opentelekomcloud_networking_secgroup_v2.rdp_sg.name]

user_data = base64encode(file("${path.module}/bootstrap-windows.ps1"))
}

对应的bootstrap-windows.ps1文件内容:

#ps1
net user "Administrator" "SecurePassword!"
net user Administrator /active:yes

实例部署完成后,脚本已运行且实例重启,但设置的密码无法登录Windows实例。此方法在Linux实例上可正常生效,请问问题出在哪里?

解决方案

问题根源在于Windows环境下Cloudbase-Init的运行机制、密码策略以及脚本执行权限的特殊性,具体原因和修复方式如下:

  • Cloudbase-Init会覆盖自定义密码
    开放电信云的官方Windows镜像默认启用了Cloudbase-Init的密码自动生成功能,即便你通过脚本设置了密码,Cloudbase-Init在初始化流程的后期会自动覆盖这个密码,生成随机密码并存储在云平台控制台。要解决这个问题,必须通过Cloudbase-Init的配置元数据,明确禁用密码重置功能并指定管理员密码。

  • 脚本执行权限不足
    直接通过net user命令设置密码时,脚本可能未以管理员权限执行,导致密码修改操作未真正生效。

正确配置方式

放弃直接执行net user的脚本,改用Cloudbase-Init的配置文件来指定密码:

  1. 创建cloudbase-init-config.txt文件,内容如下:
[DEFAULT]
username=Administrator
password=SecurePassword!
disable_password_reset=true
enable_automatic_updates=false
  1. 修改Terraform代码中的user_data部分,加载该配置文件并编码:
user_data = base64encode(file("${path.module}/cloudbase-init-config.txt"))

如果需要额外执行PowerShell脚本,可以结合Cloudbase-Init的runonce模块,创建userdata.txt配置文件:

[DEFAULT]
username=Administrator
password=SecurePassword!
disable_password_reset=true

[runonce]
powershell_path=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
command=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\bootstrap-windows.ps1

同时将bootstrap-windows.ps1内容简化为需要的激活命令:

net user Administrator /active:yes
# 其他需要执行的自定义命令

额外注意事项

  • 设置的密码必须符合Windows默认密码策略(比如长度≥8位、包含大小写字母/数字/特殊字符),否则会设置失败。
  • 开放电信云官方Windows镜像已预装并启用Cloudbase-Init服务,无需额外安装。

内容的提问来源于stack exchange,提问作者karki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:14:51