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

Invoke-GetVmPower启动VM报错但Get-VM正常的技术求助

解决方法

1. 修正Invoke-GetVmPower的参数格式

Invoke-GetVmPower的-Vm参数不接受VM名称,需要传入VM的UUID或vCenter分配的VM ID。可以通过PowerCLI命令获取正确标识符:

  • 获取VM UUID:
    (Get-VM "VMNAME").ExtensionData.Config.Uuid
    
  • 获取VM的vCenter内部ID:
    (Get-VM "VMNAME").ExtensionData.MoRef.Value
    

将获取到的值替换原有参数,例如:

Invoke-GetVmPower -Vm "503f996a-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

2. 确认SDK模块的连接上下文

Invoke-GetVmPower属于VMware vSphere SDK for PowerShell模块,它和传统PowerCLI的Connect-VIServer是独立的连接会话。需要重新用SDK的命令连接vCenter:

Connect-vSphereServer -Server 你的vCenter地址 -Credential (Get-Credential)

3. 等待Terraform创建后的同步延迟

Terraform完成VM创建后,vCenter的API元数据可能需要几秒同步时间。执行命令前添加延迟:

Start-Sleep -Seconds 10
Invoke-GetVmPower -Vm "正确的VM标识符"

4. 检查Terraform输出变量

确认test_machine_vm_01_output输出的是VM的UUID而非名称。修改Terraform配置,输出正确的标识符:

output "test_machine_vm_01_output" {
  value = vmware_virtual_machine.test_machine_vm_01.uuid
}

执行terraform output test_machine_vm_01_output验证输出值后,再传入命令使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:55:15