可直接用PowerShell的Get-ADDomain和Get-ADForest命令获取全部FSMO角色持有者:森林级(SchemaMaster、DomainNamingMaster)通过Get-ADForest获取,域级(PDCEmulator、RIDMaster、InfrastructureMaster)通过Get-ADDomain获取,推荐合并输出为PSCustomObject表格以便核对。
可以直接用powershell的 get-addomain 和 get-adforest 命令获取全部fsmo角色持有者,无需手动查每台域控。
获取森林级FSMO角色(Schema Master、Domain Naming Master)
这两个角色属于整个林,运行以下命令即可:
- Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
输出会显示架构主机和域名命名主机的完整DNS名称,例如 dc01.contoso.com。
获取域级FSMO角色(PDC Emulator、RID Master、Infrastructure Master)
这三个角色属于当前域,使用:
- Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
如果环境有多个域,需对每个域单独执行该命令,或配合 Get-ADForest 中的 Domains 属性遍历。
一键汇总所有FSMO角色(推荐实用写法)
把森林级和域级信息合并显示,更直观:
- $forest = Get-ADForest; $domain = Get-ADDomain; [PSCustomObject]@{SchemaMaster=$forest.SchemaMaster; DomainNamingMaster=$forest.DomainNamingMaster; PDCEmulator=$domain.PDCEmulator; RIDMaster=$domain.RIDMaster; InfrastructureMaster=$domain.InfrastructureMaster}
结果以表格形式列出五项角色及其持有者,方便快速核对。
注意事项与常见问题
- 需在已安装 RSAT-AD-PowerShell 功能的机器上运行,且当前用户有足够AD读取权限
- 若提示“找不到cmdlet”,请先运行 Import-Module ActiveDirectory
- 跨林查询不适用,命令默认连接当前用户所属林;指定林需加
-Server或-Credential参数 - Infrastructure Master在全局编录(GC)服务器上不活跃,若所有域控都是GC,该角色实际不发挥作用
不复杂但容易忽略权限和模块加载环节,确认这两点基本就能稳定获取结果。

















