获取NTFS访问权限

时间:2016-01-07 09:46:32

标签: powershell acl

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

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

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

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

有谁知道错误是什么?

修改 目前它看起来像这样:

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

1 个答案:

答案 0 :(得分:0)

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