Get-AzureDomain,GetAzureADUser等返回Authentication_Unauthorized,未找到用户

时间:2019-01-11 01:15:07

标签: powershell azure-active-directory azure-powershell

我能够使用PowerShell对已创建的Azure AD资源进行身份验证,并且我是全局管理员。我执行此命令以通过AD进行身份验证

$AzureADCred = Get-Credential -Message "Cred to connect to AD"
Connect-AzureAD -Credential $AzureADCred

这将返回我的AccountSubscriptionNameTenantIDAccountType(用户),这似乎表明我的登录名与特定租户相关联。然后,我可以执行以下命令:

Get-AzureADCurrentSessionInfo

但是,我尝试过的所有其他AzureAD查询都失败了。这包括:

Get-AzureADUser -SearchString "XXX"
Get-AzureADCurrentSessionInfo
Get-AzureADtenantdetail
Get-AzureADDomain

错误消息状态(例如)

  

Get-AzureADDomain:执行GetDomains时发生错误

     

代码:Authentication_Unauthorized

     

消息:找不到用户

似乎我具有正确的管理特权,并且我已连接到正确的租户。为了执行这些命令,我​​还需要做什么?


我回去尝试添加tenantID,但没有成功。我不确定为什么这行得通,因为即使我在没有tenantID的情况下登录

Get-AzureADCurrentSessionInfo

返回acct和承租人,因此我的登录名似乎在初始登录时已与承租人正确关联。我可以看到,如果该登录名与多个租户相关联,这将是一个问题。 当我切换到我在AD中创建的用户时,它具有AD域xxx.onmicrosoft.com,并且将该用户设置为全局管理员,因此我可以执行所有其他用户ID失败的命令。即使两个用户都是全局管理员,也只有我的AD域中的用户才能执行这些命令。也许这不是不在AD域中的AD用户的众所周知的限制。也许我需要运行一个Powershell命令来赋予该用户其他特权? 更新-我还尝试使用Azure Cloud Shell复制此问题,但发现任何具有Global Admin特权的AD用户,无论其域如何,都可以执行AzureAD命令的范围。至此,我得出结论,我的本地Powershell安装存在问题,但我无法找到有关问题确切内容的任何文档。因此,现在,当遇到此问题时,我建议在与AD处于同一域的Global Admin User ID下运行AzureAD命令的解决方法。

2 个答案:

答案 0 :(得分:1)

我可以重现您的问题,我想您正在使用Guest用户帐户,例如xxx@hotmail.com,如果您Connect-AzureAD没有参数-TenantId,则默认情况下它不会像xxx.onmicrosoft.com那样登录承租人。

enter image description here

要解决此问题,您的命令应为Connect-AzureAD -Credential $AzureADCred -TenantId "<your TenantId>",然后它将起作用。

enter image description here

答案 1 :(得分:0)

如果您使用Microsoft帐户,它将无法使用。您需要创建一个新的Azure AD帐户并分配Global admin角色,如果可能的话,还需要分配User access Admin角色。这为我解决了这个问题