Windows 用户+;文件夹

Windows 用户+;文件夹,windows,powershell,scripting,Windows,Powershell,Scripting,最近正在使用powershell 不知道是否有人知道如何按用户显示允许的文件夹 在这之前,我一直在努力 获取ADPrincipalGroupMembership用户名|选择名称 但我只获取组,不获取文件夹的任何内容,如果用户被分配到一个没有组的文件夹,则无法看到该文件夹。 Im搜索可以快速找到一个用户在文件服务器上的所有权限。 对不起我的英语。 谢谢。您必须循环浏览所有文件夹和文件,并检查其权限是否包括您要查找的用户名 像这样: $items = Get-Childitem C:\Temp 这


最近正在使用powershell
不知道是否有人知道如何按用户显示允许的文件夹

在这之前,我一直在努力

获取ADPrincipalGroupMembership用户名|选择名称

但我只获取组,不获取文件夹的任何内容,如果用户被分配到一个没有组的文件夹,则无法看到该文件夹。

Im搜索可以快速找到一个用户在文件服务器上的所有权限。

对不起我的英语。
谢谢。

您必须循环浏览所有文件夹和文件,并检查其权限是否包括您要查找的用户名

像这样:

$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
FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : Domain\User
IsInherited       : True
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : None
现在,您可以将$items对象与GetAccessControl方法一起使用,如下所示:

$items.GetAccessControl() | select -ExpandProperty Access
同样,这将返回一个对象,其中包含指定路径中每个文件夹的NTFS文件权限

看起来是这样的:

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       24-05-2017     10:06                test
-a----       23-05-2017     14:55             97 test.csv
FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : Domain\User
IsInherited       : True
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : None
尝试使用这些信息,看看是否可以开始使用一个工作示例,以便社区帮助调试:)

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

$Test[0]。标识引用 将为$Test数组中的第一个条目生成“domain/user”。 因此,可以使用foreach对象或

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