如何用PowerShell获取AD B2C用户的非通用属性?
解决Graph PowerShell SDK获取AD B2C用户属性为空的问题
正确命令写法
使用以下命令可正确获取目标属性:
# 先确保已登录并拥有足够权限 Connect-MgGraph -Scopes User.Read.All # 获取指定属性并显式输出 Get-MgUser -Property "createdDateTime,extension_xxxxxx_yyyyy,identities" | Select-Object createdDateTime, extension_xxxxxx_yyyyy, identities
问题原因及解释
- 生成代码的+号错误:Graph Explorer自动生成的PowerShell代码里的
+号是多余的,PowerShell SDK的-Property参数不需要用+标识扩展属性,直接填写完整属性名即可,多余的+会触发OData语法解析错误。 - 属性为空的假象:去掉
+号后虽无报错,但Get-MgUser默认只展示预设的属性集合,即便已经成功获取了指定属性,也不会主动显示。通过Select-Object显式选择需要的属性,就能看到实际返回的值。
额外注意事项
- 确认你的应用已被授予
User.Read.All(或更高权限),权限不足会导致无法获取属性值。 - 确保扩展属性名称
extension_xxxxxx_yyyyy完全正确,AD B2C的扩展属性格式为extension_<应用ID去掉连字符>_<属性名>,名称错误会返回空值。
内容的提问来源于stack exchange,提问作者Xtonic Chen
相关产品推荐
相关产品推荐

