PowerShell执行Set-AzureADUser报错Authentication_Unauthorized,如何解决?
我是PowerShell新手,执行以下命令时出现错误,且已确认用户TestUser1@home1.onmicrosoft.com确实存在。
执行命令:
PS C:\WINDOWS\system32> Set-AzureADUser -ObjectId TestUser1@home1.onmicrosoft.com -AccountEnabled $false
报错信息:
Set-AzureADUser : 执行SetUser时发生错误
Code: Authentication_Unauthorized
Message: 用户未找到
RequestId: b32c6fe2-d785-4d30-acc1-67ffba685269
DateTimeStamp: Sat, 20 Aug 2022 16:45:06 GMT
HttpStatusCode: Forbidden
HttpStatusDescription: Forbidden
HttpResponseStatus: Completed
At line:1 char:1
- Set-AzureADUser -ObjectId TestUser1@home1.onmicrosoft.com -Account ...
- CategoryInfo : NotSpecified: (:) [Set-AzureADUser], ApiException
- FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.SetUser
确认当前AzureAD会话的租户是否正确
可能登录到了错误的Azure AD租户,导致无法找到目标用户。执行以下命令查看当前会话的租户信息:Get-AzureADTenantDetail如果租户不是home1.onmicrosoft.com对应的租户,重新登录并指定正确租户:
Connect-AzureAD -TenantId "home1.onmicrosoft.com"检查执行账号的权限
报错返回Forbidden,说明当前登录的账号没有修改用户的权限。需确保账号拥有用户管理员或全局管理员角色。可通过以下命令查看当前账号的角色:Get-AzureADDirectoryRoleAssignment -ObjectId (Get-AzureADCurrentSessionInfo).Account.Id若权限不足,联系租户管理员为账号分配对应角色。
改用用户ObjectId而非UPN执行命令
有时UPN可能存在格式或匹配问题,先获取用户的ObjectId:Get-AzureADUser -Filter "UserPrincipalName eq 'TestUser1@home1.onmicrosoft.com'" | Select ObjectId再用获取到的ObjectId执行命令:
Set-AzureADUser -ObjectId "获取到的ObjectId值" -AccountEnabled $false确认AzureAD模块版本
旧版本的AzureAD模块可能存在兼容性问题,执行以下命令检查版本:Get-Module -ListAvailable AzureAD若版本较旧,更新模块:
Update-Module AzureAD
内容的提问来源于stack exchange,提问作者AskMe

