【问题标题】:NTFS Reporting via Powershell通过 Powershell 进行 NTFS 报告
【发布时间】:2014-07-02 21:02:22
【问题描述】:

我想报告用户对文件夹对象(不是文件)的权限。我正在尝试使用 get-acl powershell cmdlet 来完成此操作,但是我遇到了一个问题,我注意到我的代码没有正确获得所有权限。在检查用户权限并希望在用户权限可能会更改一个文件夹时获得例外情况时,我也会将其降低一级。

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

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

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

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

随机文件夹报告数字,而不是给我 FileSystemRights。我的代码有问题吗?

【问题讨论】:

    标签: powershell scripting ntfs


    【解决方案1】:

    我将与这里的 ManyRootsofAllEvil 不同...您不想只是将它们过滤掉。数字结果是由于在 ACE 中应用了特定权限而不是分组权限,例如读取、写入或完全控制。请阅读the MSDN FileSystemRights Enumeration page 了解所有详细信息,但该数字代表分配的所有特定权利的顶点。例如,一般的读取权限组如下所示:

    指定以只读方式打开和复制文件夹或文件的权限。 该权限包括 ReadData 权限、ReadExtendedAttributes 权限、 ReadAttributes 权限,ReadPermissions 权限。

    是的,如果某人拥有完全控制权,那么深入了解特定权限可能无关紧要,但这可能非常重要,因为这些权限可能是传播到子文件夹和文件的权限。

    因此,如果有人具有读取权限,您将看到读取。如果某人只有 ReadData、ReadExtendedAttributes 和 ReadAttributes(但没有 ReadPermissions),则会产生一个数字响应。

    按位标志的工作原理是(仅作为示例,不是实际值!): 0 - 无 1 - 读取数据 2 - 读取扩展属性 5 - 读取属性 9 - 读取权限

    你找出它们有什么,加上与之相关的数字,这就是按位响应。因此,如果他们有 ReadData (1) 和 ReadPermissions (9),则响应为 10 (1+9)。如果它们具有 ReadData (1)、ReadExtendedAttributes (2) 和 ReadAttributes (5),您将得到 8 (1+2+5)。数字很​​快就会变大,因为没有一个项目可以有一个数字是之前项目的任意组合加在一起,这样任何数量的项目加在一起时都会创建一个唯一的数字。

    您最终要做的是查看继承和传播类型,看看它们在哪里开始不同,以及异常在哪里。

    【讨论】:

      【解决方案2】:

      你的脚本没有问题

      看看这个link 以获得解释。

      简而言之:

      BUILTIN\Administrators 允许完全控制

      BUILTIN\Administrators 允许 268435456

      你应该能够过滤掉它们

      【讨论】:

        猜你喜欢
        • 2021-11-09
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-24
        • 2010-11-29
        • 2022-12-05
        相关资源
        最近更新 更多