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

如何通过PowerShell获取本地Active Directory安全选项卡的Inherited from列

获取AD用户对象权限的“Inherited from”信息

你可以通过Get-Acl返回的访问规则对象的InheritanceSource属性获取继承来源,结合IsInherited判断权限是否为继承而来。以下是具体实现:

示例代码

# 导入AD模块(如果未加载)
Import-Module ActiveDirectory

# 替换为目标用户的DN
$userDN = "CN=John Doe,OU=Users,DC=contoso,DC=com"

# 获取用户对象的ACL
$acl = Get-Acl "AD:\$userDN"

# 提取权限信息,包含Inherited from列
$acl.Access | Select-Object `
    IdentityReference,
    AccessControlType,
    ActiveDirectoryRights,
    IsInherited,
    @{
        Name = 'InheritedFrom'
        Expression = {
            if ($_.IsInherited) {
                # 去掉AD:\前缀,得到和dsa.msc一致的DN格式
                $_.InheritanceSource -replace '^AD:\\', ''
            }
            else {
                # 直接分配的权限,对应界面中的空值
                '直接分配'
            }
        }
    }

关键属性说明

  • IsInherited:布尔值,标记该权限是继承自父对象还是直接分配给当前用户
  • InheritanceSource:当IsInherited为True时,返回继承来源对象的完整AD路径(格式为AD:\<对象DN>),通过字符串替换可得到与dsa.msc界面完全一致的“Inherited from”列内容

注意事项

  • 需确保运行PowerShell的账号拥有读取目标AD对象权限的权限
  • 该方法适用于PowerShell 5.1及以上版本的Active Directory模块

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:10:58