Список разрешений папки для конкретного пользователя в PowerShell - PullRequest
1 голос
/ 17 апреля 2019

Я новичок в Powershell, и мне нужно знать, как составить список всех разрешений для папки для конкретного пользователя.Это то, что я обнаружил до сих пор:

$ReferenceAccountName = 'DOMAIN\Username' 
[string[]]$SearchDirectories
= @('X:\SomeDirectory', 'F:\AnotherDirectory')

foreach ($RootDir in $SearchDirectories) {
    $DirACL = Get-Acl -Path $RootDir
    foreach ($ACL in $DirACL.Access){
        if ($ACL.IdentityReference -like $ReferenceAccountName){
            Write-Output $RootDir
        }
    }
    foreach ($Directory in (Get-ChildItem -Path $RootDir -Recurse | `
                            Where-Object -FilterScript {$_.Attributes `
                            -contains 'Directory'})){
        $DirACL = Get-Acl -Path $Directory.FullName
        foreach ($ACL in $DirACL.Access){
            if ($ACL.IdentityReference -like $ReferenceAccountName){
                Write-Output $Directory.FullName
            }
        }
    } }

Однако это не возвращает никакого значения с помощью команды Write-Output.Изменение его на Write-Host также не сработало.Я скучаю по некоторым важным деталям?

Я использую Powershell V2.0

1 Ответ

0 голосов
/ 17 апреля 2019

Если я правильно понял ваш вопрос, это должно сделать это:

$user = "domain\username"
$path = "C:\Users\daisies"
$list = Get-ChildItem $path -Recurse | Where-Object {(Get-Acl $_.FullName).Access | Where-Object {$_.IdentityReference -eq $user} }
Write-Output $list

Выводит список с вашим разрешением, LastWriteTime и именем файла.

...