Azure Powershell抛出"未知用户类型"

时间:2015-03-03 11:03:22

标签: powershell azure azure-powershell

我正在尝试针对AD帐户验证Powershell脚本(根据this guide):

$userName = "username@mydomain.com"
$securePassword = ConvertTo-SecureString -String "myPassword1" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureAccount -Credential $cred

但是我收到了错误:

Add-AzureAccount : unknown_user_type: Unknown User Type
At line:2 char:1
+ Add-AzureAccount -Credential $cred
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzureAccount], AadAuthenticationFailedException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Profile.AddAzureAccount

输入用户名/密码并不重要,即使是“adsfasdf”,用户名和密码都会给我相同的结果。

之前有人解决了这个问题吗?

5 个答案:

答案 0 :(得分:1)

对于任何人来到这个问题,我提供的分析解决了我环境中的类似问题。我也在考虑以下答复中原始问题的非常有用的评论。

  1. 请检查您是否可以使用这些凭据并手动登录Azure portal
  2. 确保您使用的帐户是组织帐户。 Microsoft有安全限制,您无法使用您用于各种目的和站点的Microsoft帐户(以前称为实时ID)登录。此组织帐户必须与Microsoft帐户分开。
  3. 在Microsoft官方发布的文档中详细了解有关组织帐户的要求:Windows Azure Organizational Accounts FAQ

答案 1 :(得分:0)

我知道这个主题已经有很多时间但是对我来说它发生了,我使用userPrincipalName

来解决它

答案 2 :(得分:0)

我正在尝试更改B2C用户的密码。

我使用的是使用GraphAPI库的.NET解决方案

但是当我进行密码更改测试时,我收到了消息"未知用户类型"

为了修复错误,我更改了信息中用户名的值,以使用属性" userPrincipalName"中的值更改密码。而不是使用"用户名"。可以在Azure clasico的门户网站或GraphApi中看到此属性:

{       " odata.type":" Microsoft.DirectoryServices.User",       " objectType":" User",       " objectId":" xxxxxxxxxxxxxxxxxxxx",       " deletionTimestamp":null,       " accountEnabled":是的,       " signInNames":[         {           "输入":" userName",           "价值":" joeconsumer"         }       ] 下,       " userPrincipalName":" 123c89f2-002d-40e9-934e-065f171b3ca5@xxxxxx.onmicrosoft.com" ;,       " userType":"会员"     }

我希望这有助于你

答案 3 :(得分:0)

为了详细说明本文中的UPN问题,我刚刚开始使用Azure AD并收到此错误。他们所说的“使用userPrincipalName”实际上听起来很愚蠢和容易。 我试图将connect-azuread与存储的凭证一起使用,并收到相同的错误。我发现使用登录名时连接失败。将其更改为username@tenantdomain.com之后,我便可以自动执行连接。

我希望这会有所帮助,因为它可以立即解决我的问题!

答案 4 :(得分:0)

当我遇到此错误时,问题在于我登录的帐户(我的 Windows Live 帐户)需要两步验证。 documentation 描述了三种登录方式:

  1. Connect-AzureAD -Confirm 交互。这会弹出一个对话框,因此不能用于无人参与的脚本。

  2. 使用变量,正如我和 OP 所尝试的那样。但文档说:

<块引用>

如果为您的凭据启用了多重身份验证,您必须使用交互选项登录或使用服务主体身份验证。

  1. 作为服务主体,使用自签名证书 -- 这比我愿意做的工作要多,幸运的是我不需要无人值守的操作,所以我可以使用选项 #1。