【问题标题】:Using Get-ACL to get file share permissions使用 Get-ACL 获取文件共享权限
【发布时间】:2014-05-20 14:06:19
【问题描述】:

我有以下脚本,它根据给定的路径报告当前文件夹并递归一级以获得任何子文件夹权限。

if ($ComputerName -eq '.'){
$Path = $Folder
}

else {
$Path = "\\$ComputerName\$Folder"
}ls

if ($OutputFile){
gci $Path|%{if($_.PSIsContainer){GCI $_.FullName|get-acl};$_|get-acl}| sort PSParentPath| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | Export-CSV $OutputFile -NoType
}

else{
gci $Path|%{if($_.PSIsContainer){GCI $_.FullName|get-acl};$_|get-acl}|sort PSParentPath| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | FT -Auto
}

我遇到的问题是我没有获得实际共享的权限。例如,假设我的路径是 \Server\share\folder1\folder2\folder3。我想获得 share 和 folder1 的权限,但是当我运行它时,我得到的是 share 内部的内容和一个级别之外的内容。

【问题讨论】:

    标签: powershell ntfs


    【解决方案1】:

    问题在于,您首先要做的是获取 $Path 的内容,并获取所有内容的 ACL,如果是文件夹,您将获取这些文件夹内容的 ACL,但您永远不会实际上得到 $Path 本身的 ACL。我想你想做的是:

    if ($ComputerName -eq '.'){
        $Path = $Folder
    }
    
    else {
        $Path = "\\$ComputerName\$Folder"
    }
    
    $Output = @()
    $Output += get-acl $Path
    $Output += GCI $Path | ?{$_.PSIsContainer} | Get-ACL
    
    if ($OutputFile){
        $Output | sort PSParentPath| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | Export-CSV $OutputFile -NoType
    }
    
    else{
        $Output | sort PSParentPath| Select-Object @{Name="Path";Expression={$_.PSPath.Substring($_.PSPath.IndexOf(":")+2) }},@{Name="Type";Expression={$_.GetType()}},Owner -ExpandProperty Access | FT -Auto
    }
    

    这将创建一个数组来存储 ACL。然后它获取 $Path 的 ACL 并将其存储在数组中,然后它获取 $Path 中所有文件夹的 ACL 并将其添加到数组中,然后按照您的需要输出它。

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      相关资源
      最近更新 更多