列出PowerShell中特定用户的文件夹权限

问题描述 投票:1回答:1

我是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

powershell permissions active-directory powershell-v2.0 acl
1个回答
0
投票

如果我理解你的问题,这应该是:

$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和文件名的列表。

© www.soinside.com 2019 - 2024. All rights reserved.