powershell列出了用户+文件夹的权限

时间:2017-05-24 08:03:43

标签: windows powershell scripting


最近使用 powershell 不知道是否有人知道某种方式来显示用户允许的文件夹。

直到这个

  

Get-ADPrincipalGroupMembership用户名|选择名称

但是我只是获取组,没有文件夹,如果用户将其分配给没有组的一个文件夹,则无法看到。

我正在搜索能够快速找到一个用户在文件服务器上的所有权限。

抱歉我的英文。 谢谢。

1 个答案:

答案 0 :(得分:0)

您必须遍历所有文件夹和文件,并检查其权限是否包含您要查找的用户名。

像这样:

$items = Get-Childitem C:\Temp

这为您提供了文件和文件夹的对象,然后您可以将其传递给GetAccessControl方法 该对象如下所示:

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       24-05-2017     10:06                test
-a----       23-05-2017     14:55             97 test.csv

现在,您可以将$ items对象与GetAccessControl方法一起使用,如下所示:

$items.GetAccessControl() | select -ExpandProperty Access

同样,这将返回一个对象,其中包含您指定路径中每个文件夹的NTFS文件权限。

这将是这样的:

FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : Domain\User
IsInherited       : True
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : None

尝试使用这些信息,看看你是否可以开始使用一个工作示例,社区可以帮助调试:)

请保留原帖中的回复。糟透了我们不能只评论...... 但是,是的,你看到的是当前文件(在管道中)的NTFS访问控制列表中提到的所有用户/组。 请记住,您可以访问各个行的对象,以便于搜索。 像这样:

$测试[0] .IdentityReference 会为$ Test数组中的第一个条目产生“domain / user”。 因此,您可以使用foreach-object或

遍历所有条目
foreach($item in $test){
#Code here
# if($item.IdentityReference -eq $UserImLookingfor){Write-host "Match! -fo green" }
$i++
}