You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取AAD用户所属的所有租户ID?含PowerShell实现方法

如何用PowerShell获取AAD用户所属的所有租户ID?

刚好之前帮同事解决过这个需求——要实现像Azure门户里不用逐个登录就能查看账户所属所有目录的效果,用PowerShell完全可以做到。下面分两种常用的模块给你讲具体操作:

方法一:使用Microsoft Graph PowerShell(官方推荐)

因为AzureAD模块已经进入维护模式,微软现在更推荐用Microsoft Graph来操作AAD资源,步骤如下:

  1. 安装并导入模块(如果还没装过):
# 安装Microsoft Graph模块,Force参数强制覆盖旧版本,AllowClobber解决模块冲突
Install-Module -Name Microsoft.Graph -Force -AllowClobber
# 导入用户和组织相关的子模块
Import-Module Microsoft.Graph.Users
  1. 登录用户账户(不要指定租户):
    这里关键是不要指定具体租户ID,这样PowerShell会自动识别该用户有权访问的所有租户:
# 请求必要的权限:读取用户自身信息、读取组织信息
Connect-MgGraph -Scopes "User.Read", "Organization.Read.All"

登录后会弹出浏览器让你输入账户密码,完成验证即可。

  1. 查询并提取所有租户ID和名称:
# 获取当前登录用户的ID
$currentUserId = (Get-MgMe).Id
# 查询该用户关联的所有组织(包括主租户和来宾租户)
$userTenants = Get-MgUserOrganization -UserId $currentUserId
# 输出租户ID和对应的目录名称,和门户下拉列表一致
$userTenants | Select-Object Id, DisplayName

方法二:使用AzureAD模块(维护模式)

如果习惯用旧的AzureAD模块,也可以这么操作:

  1. 安装并导入模块:
Install-Module -Name AzureAD -Force -AllowClobber
Import-Module AzureAD
  1. 登录用户账户:
    同样不要指定租户,直接登录:
Connect-AzureAD
  1. 获取所有租户信息:
# 直接获取当前用户的所有租户详情,提取ID和名称
Get-AzureADTenantDetail | Select-Object ObjectId, DisplayName

一些注意事项

  • 权限要求:确保登录的用户有Organization.Read.All(Graph)或对应的AzureAD权限,否则可能无法看到所有关联租户。
  • 来宾用户场景:如果是作为来宾用户加入其他租户,这些命令也能列出你被邀请的租户信息,和门户显示一致。
  • 不要指定租户登录:如果登录时加了-TenantId参数,只会返回该指定租户的信息,就达不到查看所有目录的效果了。

内容的提问来源于stack exchange,提问作者Gregory Suvalian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:16:38