2016-01-07 2 views
0

Я ищу способ перечислить все права доступа из папки рекурсивно. Сейчас у меня есть этот код:Получить права доступа NTFS

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

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

Но это не список всех прав доступа.

Есть ли у кого-нибудь идеи, что случилось?

EDIT: На данный момент это выглядит следующим образом:

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

Что «* не список всех доступ с правами *» означает? Что отсутствует или какое сообщение об ошибке вы получаете? –

+0

В нем перечислены первый accessrole и права, но затем он записывает только «....» – Elanduir

+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 
+0

Спасибо, это выглядит лучше. Но все же, он отключается .... Нравится это: NT-AUTORITÄT \ Authentifizierte ... – Elanduir

+0

Ах, это потому, что выход автоматически форматируется перед записью в файл. Вместо этого экспортируйте данные в CSV. –

+0

Это работает отлично. благодаря – Elanduir

 Смежные вопросы

  • Нет связанных вопросов^_^