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

使用PowerShell+Graph API给Intune合规策略分配组遇400错误求助

Intune合规策略组分配PowerShell脚本400错误修复方案

以下是针对你遇到的Bad Request(400)错误的具体修复建议:

核心问题排查与修正

  • 修正URL语法错误:原脚本中$intuneUrl变量缺少开头的双引号,PowerShell无法正确识别字符串,这是基础语法问题。
  • 修复JSON格式问题:
    • JSON规范要求键值对必须使用双引号,原脚本用单引号会导致Graph API解析失败;
    • @odata.type格式错误,正确值应为#microsoft.graph.groupAssignmentTarget(单个#符号),而非##;
    • 新增分配时无需指定id字段,该字段是现有分配的唯一标识,仅在更新已有分配时需要。
  • 匹配正确的请求方法:首次给合规策略分配组时,应使用POST方法;若要更新现有分配集合,再使用PATCH方法,错误的方法会触发400错误。

修正后的脚本示例

$headers = @{
    "Authorization" = "Bearer $accessToken"
    "Content-Type"  = "application/json"
}

# 替换xxx为你的合规策略ID
$intuneUrl = "https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies/xxx/assignments"

# 使用Here-String编写JSON,避免引号转义问题,同时保证格式正确
$body = @"
{
    "assignments": [
        {
            "target": {
                "@odata.type": "#microsoft.graph.groupAssignmentTarget",
                "groupId": "xxx" # 替换为目标Azure AD组ID
            }
        }
    ]
}
"@

# 首次分配用POST,更新现有分配则改为PATCH
Invoke-RestMethod -Uri $intuneUrl -Method POST -Headers $headers -Body $body -ErrorAction Stop

额外检查项

  • 确认$accessToken拥有DeviceManagementConfiguration.ReadWrite.All权限,且令牌未过期;
  • 验证合规策略ID和组ID的准确性,确保ID对应资源在Azure AD/Intune中存在;
  • 先调用GET请求$intuneUrl查看现有分配,避免重复分配同一组导致错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:03:20