如何通过Microsoft Graph PowerShell SDK登录Azure AD B2C租户并管理自定义用户属性
在PowerShell 7中登录Azure AD B2C租户并操作用户属性的方法
核心解决思路
你之前用主租户来宾账户登录时,默认关联到了主租户,必须明确指定B2C租户ID并使用B2C租户本地管理员账户登录,才能操作B2C租户内的用户资源。
步骤1:使用B2C租户管理员账户登录
执行以下命令,将<你的B2C租户ID>替换为实际的B2C租户ID(可在Azure门户B2C租户概述页面获取):
Connect-MgGraph -TenantId "<你的B2C租户ID>" -Scopes "User.Read.All","User.ReadWrite.All"
- 登录时必须使用B2C租户自身的全局管理员或用户管理员账户,主租户的来宾账户权限不足,无法操作B2C用户。
- 权限需包含
User.ReadWrite.All才能更新用户属性,若不需要组操作,可移除Group.ReadWrite.All。
步骤2:验证当前连接的租户
执行命令确认已连接到目标B2C租户:
Get-MgContext
检查输出中的TenantId是否与你的B2C租户ID一致。
步骤3:获取并更新用户自定义属性
- 确认自定义属性的Graph格式名称
你添加的"Company Name"自定义属性,在Microsoft Graph中会以extension_<B2C应用客户端ID去掉连字符>_CompanyName的格式存在。可通过查看单个用户的扩展属性确认:
Get-MgUser -UserId "<任意B2C用户ID>" -Select "extension_*"
- 批量更新用户属性
遍历所有用户并设置自定义属性值,替换<你的扩展属性名称>和<目标公司名称>:
$users = Get-MgUser -All $true foreach ($user in $users) { Update-MgUser -UserId $user.Id -AdditionalProperties @{ "<你的扩展属性名称>" = "<目标公司名称>" } }
注意事项
- 来宾账户权限受限,无法对B2C租户的用户进行批量更新,必须使用B2C租户本地管理员账户。
- 扩展属性名称中的客户端ID需去掉所有连字符(
-),确保名称完全匹配。
内容的提问来源于stack exchange,提问作者user1063287
相关产品推荐
相关产品推荐

