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

使用Get-MgUser查询含特殊字符的Azure用户时遇400错误的解决方法

解决Get-MgUser查询含特殊字符用户ID的400错误

问题原因

  1. PowerShell中&是命令分隔符,直接写ABC&CD@domain.onmicrosoft.com会被解析成执行ABC命令后接CD@domain.onmicrosoft.com,导致参数传递错误。
  2. Graph API要求URL中的特殊字符必须编码,未编码的&会被识别为请求参数分隔符,引发400 BadRequest错误。

解决方法

方法1:用单引号包裹用户ID

单引号在PowerShell中会将内容视为原样字符串,不会解析特殊字符,修改脚本如下:

$Account_disabled = ((Get-MgUser -UserId 'ABC&CD@domain.onmicrosoft.com' -Property accountEnabled | Select-Object accountEnabled).AccountEnabled -eq $false)

方法2:对用户ID进行URL编码

如果单引号包裹仍有问题,使用[Uri]::EscapeDataString()对用户ID进行URL编码,确保Graph API能正确识别:

$userId = 'ABC&CD@domain.onmicrosoft.com'
$encodedUserId = [Uri]::EscapeDataString($userId)
$Account_disabled = ((Get-MgUser -UserId $encodedUserId -Property accountEnabled | Select-Object accountEnabled).AccountEnabled -eq $false)

验证

执行修改后的脚本后,PowerShell会正确传递用户ID到Graph API,避免因特殊字符导致的请求格式错误,成功获取用户的accountEnabled属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:37:40