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

PowerShell GenericList问题:如何添加权限来源(用户/组)字段

解决PowerShell权限脚本中From列显示正确身份的问题

你遇到的核心问题是原脚本里不管是用户自身的权限还是通过组继承的权限,From列都固定显示为用户账号,我们只需要调整From字段的取值逻辑,让它动态匹配当前权限对应的身份(用户或组)即可。

修改后的完整脚本

$User = "Testumgebung\cbruehwiler"
$UserOhneDomain = "cbruehwiler"
$Path = "T:\"
$List = New-Object System.Collections.Generic.List[System.Object]

# 获取用户所属的所有AD组,整理为完整的域\组名格式
$UserGroups = Get-ADPrincipalGroupMembership $UserOhneDomain | ForEach-Object {
    "TESTUMGEBUNG\$($_.Name)"
}
# 把用户自身也加入到需要检查的身份列表中
$TargetIdentities = $User, $UserGroups

# 调整输出字段,From字段改为动态获取当前权限的对应身份
$OutputFields = @(
    @{name="Item" ; expression={$_.Path.split(':',3)[-1]}}
    @{name="Rights" ; expression={$Right.FileSystemRights}}
    @{name="AccessType" ; expression={$Right.AccessControlType}}
    @{name="From" ; expression={$Right.IdentityReference.Value}}
)

$FileSystemObjects = Get-ChildItem $Path -Recurse | ForEach-Object {Get-Acl $_.FullName}

# 合并循环逻辑,一次遍历所有权限并匹配目标身份
foreach ($Item in $FileSystemObjects) {
    foreach ($Right in $Item.Access) {
        if ($TargetIdentities -contains $Right.IdentityReference.Value) {
            $List.Add(($Item | Select-Object $OutputFields))
        }
    }
}

$List | Out-File C:\Users\cbruehwiler\Desktop\PermissionCheck.txt

关键修改说明

  1. 统一身份列表:

    • 把用户自身和所属的组整理成一个TargetIdentities列表,包含完整的域\账号/组名格式,这样可以用一次循环完成所有匹配,不用分开处理用户和组的权限。
  2. 动态设置From字段:

    • 修改OutputFields中From的表达式,直接取$Right.IdentityReference.Value,这个值就是当前权限对应的具体身份(用户或组的完整名称),不再硬编码为固定的用户账号。
  3. 简化循环结构:

    • 合并了原脚本中两次遍历文件系统对象的循环,现在只需要一次遍历,检查每个权限是否属于目标身份列表中的成员,代码更简洁高效。

修改后的输出示例

Item        Rights                          AccessType From
----        ------                          ---------- ----
T:\TestFolder FullControl                    Allow      Testumgebung\cbruehwiler
T:\TestFolder Read, Synchronize              Allow      Testumgebung\Domain Users
T:\TestFolder Write, ReadAndExecute, Synchronize Allow Testumgebung\TestGroup

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:37:14