Set-AzVMRunCommand创建成功,Invoke-AzVMRunCommand调用失败求助
解决自定义RunCommand调用404的问题
问题根源
Invoke-AzVMRunCommand的-CommandId参数不接受自定义RunCommand的ARM资源ID,而是需要使用该命令的短标识符(commandId)——这个值是创建RunCommand时生成的,可通过列表命令获取。
步骤1:获取正确的commandId
执行以下Azure CLI命令,找到你创建的foobar命令,提取输出中的commandId字段值(注意不是id字段的ARM路径):
az vm run-command list --resource-group <你的资源组名> --vm-name <你的VM名> --query "[?name=='foobar'].commandId" -o tsv
返回值类似Custom_foobar,这才是调用时需要的CommandId。
步骤2:正确调用Invoke-AzVMRunCommand
使用提取到的commandId执行调用,示例PowerShell命令:
# 基础调用 Invoke-AzVMRunCommand -ResourceGroupName "<资源组名>" -VMName "<VM名>" -CommandId "<提取到的commandId>" # 带参数的调用(如果脚本需要参数) Invoke-AzVMRunCommand -ResourceGroupName "<资源组名>" -VMName "<VM名>" -CommandId "<提取到的commandId>" ` -Parameter @{"paramKey1"="paramValue1"; "paramKey2"="paramValue2"}
多次调用说明
自定义RunCommand创建后可重复调用,只要VM处于运行状态,直接使用同一个commandId即可。若需要更新脚本内容,执行Set-AzVMRunCommand修改该命令,后续调用仍使用原commandId。
内容的提问来源于stack exchange,提问作者Node.JS
相关产品推荐
相关产品推荐

