Security
在 ACL 中查找具有特定使用者或組的 NTFS 中的所有文件
執行摘要:我想查找特定使用者或組有權訪問的所有目錄和文件。
更詳細地說:我正在尋找一個命令行工具來遞歸搜尋 NTFS 目錄,以查找 DACL 中的 ACE 包含給定使用者或組的所有文件和目錄。如果我想修改權限,我會使用subinacl或SetACL。我以為我也可以使用其中一種工具來搜尋和顯示,但我很難找到一個直接的解決方案。
我可以像這樣使用 SetACL:
setacl -on C:\SOME_DIR -ot file -actn list -lst "f:tab;w:d;i:y;" -rec cont
然後 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 } } }
有 PowerShell 功夫的人可能會稍微清理一下。請注意,我讓它忽略繼承的條目,因為我只對知道訪問從哪裡開始感興趣。