如何通过Azure CLI+REST保存Windows onboardingPackage变量
PowerShell 7 解决方案
确认Azure CLI登录状态与目标订阅
az account show # 查看当前订阅信息 # 切换订阅(如需):az account set --subscription "你的订阅ID/名称"调用API并提取保存
onboardingPackageWindows
利用Azure CLI的az rest命令结合PowerShell的JSON解析能力,直接提取目标内容并保存:# 调用REST API并转换结果为PowerShell对象 $mdeData = az rest --method get --uri "/subscriptions/$(az account show --query id -o tsv)/providers/Microsoft.Security/mdeOnboardings/default?api-version=2021-10-01" | ConvertFrom-Json # 将目标内容存入变量 $windowsOnboardPackage = $mdeData.properties.onboardingPackageWindows # 保存为base64格式文件(该字段默认是base64编码的安装脚本内容) $windowsOnboardPackage | Out-File -Path "MDE_Windows_Onboard.base64" -Encoding utf8 # 可选:直接解码base64为可执行的安装脚本 [System.Convert]::FromBase64String($windowsOnboardPackage) | Set-Content -Path "MDE_Windows_Onboard.cmd" -Encoding Byte
命令提示符(CMD)解决方案
确认登录与订阅配置
az account show :: 切换订阅(如需):az account set --subscription "你的订阅ID/名称"快速提取保存(无需额外工具)
利用Azure CLI的--query参数直接定位目标字段,避免JSON解析麻烦::: 先设置订阅ID环境变量 for /f "delims=" %i in ('az account show --query id -o tsv') do set AZURE_SUB_ID=%i :: 提取并保存onboardingPackageWindows到文件 az rest --method get --uri "/subscriptions/%AZURE_SUB_ID%/providers/Microsoft.Security/mdeOnboardings/default?api-version=2021-10-01" --query "properties.onboardingPackageWindows" -o tsv > MDE_Windows_Onboard.base64可选:用jq解析(需提前安装jq工具)
az rest --method get --uri "/subscriptions/%AZURE_SUB_ID%/providers/Microsoft.Security/mdeOnboardings/default?api-version=2021-10-01" | jq -r ".properties.onboardingPackageWindows" > MDE_Windows_Onboard.base64
常见问题排查
- 确保使用正确的API版本(
2021-10-01为当前有效稳定版本) - 检查当前Azure账号是否拥有
Security Reader及以上权限 - PowerShell中若出现JSON解析失败,可添加
-o json参数确保az rest返回标准JSON格式
内容的提问来源于stack exchange,提问作者Bombbe
相关产品推荐
相关产品推荐

