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

在PowerShell中使用Azure CLI的az rest启用VM扩展遇问题求助

解决Azure CLI az rest PUT命令请求体过长的问题

当然可以用@body.json的方式,这正是解决这类问题的最优解

命令行直接传超长请求体本来就容易触发长度限制和语法解析问题,把请求体放到外部JSON文件里就能一次性解决你遇到的所有问题,具体操作如下:

  1. 把请求体写到外部JSON文件
    新建一个body.json文件,把原本要在命令里写的请求体内容放进去,注意格式要标准JSON,把那串20000字符的$defenderForEndpointOnboardingScript直接填到对应的字段里就行:
{
  "location": "你的虚拟机所在区域",
  "properties": {
    "publisher": "Microsoft.Azure.AzureDefenderForServers",
    "type": "MDE.Windows",
    "typeHandlerVersion": "1.0",
    "settings": {},
    "protectedSettings": {
      "onboardingScript": "这里粘贴你的超长脚本内容"
    }
  }
}
  1. 用az rest调用这个JSON文件
    执行命令时,用@body.json代替直接写请求体,同时一定要指定Content-Type: application/json(这能解决之前的Unsupported Media Type错误):
az rest --method put --uri "/subscriptions/{你的订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.Compute/virtualMachines/{虚拟机名}/extensions/MDE.Windows?api-version=2023-07-01" --body @body.json --headers Content-Type=application/json

几个要注意的点

  • 检查JSON文件的格式,别出现引号不配对、多逗号这种低级错误,不然还是会报错。
  • 把命令里的占位符(比如{你的订阅ID})都换成自己的实际信息。
  • 如果脚本里有双引号,记得在JSON里转成\",不然会破坏JSON结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:15:41