PowerShell创建Azure AD用户报PasswordProfile参数绑定错误如何解决
报错原因
你遇到的参数绑定错误由两处写法问题导致:
-MailNickName传入的值Power Shell包含空格,且未用引号包裹。PowerShell 按空格拆分命令参数时,会将空格后的Shell识别为独立参数值,打乱后续所有参数的绑定顺序,最终导致-PasswordProfile参数实际接收到字符串类型的值,无法转换为要求的Microsoft.Open.AzureAD.Model.PasswordProfile对象类型。- 你初始化的
PasswordProfile对象缺少必填字段,即便修复参数绑定问题,后续也会触发Azure AD的接口校验错误。
修复方案
按以下步骤调整代码即可正常创建用户:
- 首先补全密码配置对象的必填属性,初始化
PasswordProfile时必须显式赋值ForceChangePasswordNextLogin属性,否则无法通过接口校验:
# 初始化密码配置文件 $PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile $PasswordProfile.Password = "符合Azure AD密码复杂度要求的密码" # 按需设置该值:$true为用户首次登录必须修改密码,$false为无需首次改密 $PasswordProfile.ForceChangePasswordNextLogin = $false
- 调整创建用户的命令,所有包含空格、特殊字符的参数值统一用双引号包裹,避免参数解析错位,修正后的完整命令如下:
New-AzureADUser -DisplayName "Power SHELL" ` -GivenName "Power" ` -SurName "SHELL" ` -UserPrincipalName "power.shell@xxxx.xx" ` -UsageLocation "FR" ` -MailNickName "Power Shell" ` -PasswordProfile $PasswordProfile ` -AccountEnabled $true
注意:设置的用户密码需要满足Azure AD密码策略:长度至少8位,同时包含大小写字母、数字、特殊符号中的至少三类,否则会触发密码校验失败。
- 命令执行无报错的话,可以通过以下命令验证用户是否创建成功:
Get-AzureADUser -ObjectId "power.shell@xxxx.xx"
内容的提问来源于stack exchange,提问作者AND Mirabel
相关产品推荐
相关产品推荐

