获取 NTFS 访问权限

Get NTFS Access Rights

我正在寻找一种递归地列出文件夹中所有访问权限的方法。 现在我有这个代码:

$logfile = "C:\temp\test.txt"
$testpath = "H:\"

dir $testpath -Recurse | Get-Acl | Out-File $logfile

但这并没有列出所有访问权限。

有人知道哪里出了问题吗?

编辑: 目前它看起来像这样:

Boardmaker
HEALTH\infsst_sys
VORDEFINIERT\Administratoren Allow  FullControl...

Get-Acl 生成一个复杂的数据结构,其中包含有关对象的所有者和访问信息。您需要展开该对象的 Access 属性 以获得您想要的信息:

Get-ChildItem $testpath -Recurse | ForEach-Object {
  $file = $_.FullName
  Get-Acl -Path $file | Select-Object -Expand Access |
    Select-Object @{n='File';e={$file}}, IdentityReference, FileSystemRights,
                  AccessControlType
} | Export-Csv $logfile -NoType