Azure Graph API权限问题:PowerShell脚本执行遇403禁止访问
1. 确认Graph API权限范围
即使是全局管理员角色,Connect-MgGraph默认获取的权限可能不足以执行用户修改操作,需明确指定所需权限:
- 重新连接时添加权限参数:
Connect-MgGraph -TenantId $TenantId -Scopes "User.Read.All", "User.ReadWrite.All" -ErrorAction Stop - 运行
Get-MgContext查看当前会话的Scopes字段,确认包含上述权限。
2. 排查租户条件访问策略
租户可能存在限制Graph API或PowerShell客户端的条件访问规则:
- 登录Azure AD门户,进入安全 > 条件访问,检查是否有针对
Microsoft Graph或PowerShell客户端的拒绝策略。 - 临时禁用可疑策略测试,或添加脚本运行账户/设备到策略例外列表。
3. 验证全局管理员权限有效性
- 确认账户未被纳入管理员单元(若配置了管理员单元,可能会限制全局权限的生效范围)。
- 换用另一个全局管理员账户运行脚本,排除单个账户的权限异常。
4. 检查Microsoft Graph PowerShell应用的权限配置
- 登录Azure AD门户,进入应用注册 > 所有应用,找到名为
Microsoft Graph PowerShell的应用。 - 查看其API权限,确保
User.ReadWrite.All权限已被授予且完成管理员同意。若未同意,选中权限后点击「授予管理员同意」。
5. 验证域名修改权限
- 确认
@X.onmicrosoft.com是租户的默认域名,且允许用户UPN修改到该域名。 - 手动尝试修改一个用户的UPN(从主域名切换到
@X.onmicrosoft.com再切回),排除脚本逻辑外的域名限制。
6. 更新Microsoft Graph PowerShell模块
旧版本模块可能存在兼容性问题:
- 运行以下命令更新模块:
Update-Module Microsoft.Graph -Force - 用
Get-Module Microsoft.Graph -ListAvailable确认已安装最新版本。
内容的提问来源于stack exchange,提问作者Diego Satizabal
相关产品推荐
相关产品推荐

