Dav*_*vid 4 security permissions ntfs access-control-list file-permissions
执行摘要:我想查找特定用户或组有权访问的所有目录和文件。
更详细地说:我正在寻找一个命令行工具来递归搜索 NTFS 目录以查找 DACL 中的 ACE 包含给定用户或组的所有文件和目录。如果我想修改权限,我会使用subinacl或SetACL。我以为我也可以使用其中一种工具进行搜索和显示,但是我找不到直接的解决方案。
我可以像这样使用 SetACL:
setacl -on C:\SOME_DIR -ot file -actn list -lst "f:tab;w:d;i:y;" -rec cont
Run Code Online (Sandbox Code Playgroud)
然后为感兴趣的用户 grep,但我想要一个更优雅的解决方案。我可能在这里遗漏了一些东西。有任何想法吗?
谢谢,“未知”。你的 PowerShell 脚本对我不起作用,但我拼凑了一些有用的东西。我也是新手,但经过一些试验和错误:
Get-ChildItem "C:\SOME\DIR" -recurse |
ForEach-Object {
$fname = $_.FullName
$acl = Get-Acl $fname
foreach ($e in $acl.Access) {
If ( -not $e.IsInherited -and
$e.AccessControlType -eq "Allow" -and
$e.IdentityReference -eq "SOMEDOMAIN\Somegroup")
{
Write-Host $fname
break
}
}
}
Run Code Online (Sandbox Code Playgroud)
拥有 PowerShell kungfu 的人可能会稍微清理一下。请注意,我让它忽略了继承的条目,因为我只对知道访问开始的位置感兴趣。