仅使用NTFS所有人查找顶层文件夹

用户5711825

我想运行一个脚本来检查驱动器,看看是否有每个人都设置为NTFS权限。目前,我正在跑步:

Get-ChildItem D:\ -Recurse | Where-Object {
    (Get-Acl $_.FullName).Access | Where-Object {
        $_.IdentityReference -eq 'Everyone'
    }
} | Where-Object {
    $_.Mode -match "d"
} | Format-Table FullName

它几乎可以正常工作,但是我收到很多“指定的路径,文件名或两者都太长。完全限定的文件名必须少于260个字符”。

是否可以递归检查所有D驱动器,但在最高继承级别停止脚本?

例如

如果我有d:\ test \ test2和test2从test继承每个人,我应该只会看到

d:\ test

不是

d:\ test 
d:\ test \ test2

因此。

安斯加·威彻斯(Ansgar Wiechers)

只需检查未继承的ACE。我还建议检查$_.PSIsContainer而不是$_.Mode,并在检查ACL之前执行此操作。在PowerShell v3或更高版本上,使用的-Directory开关Get-ChildItem将结果限制为仅目录。

Get-ChildItem D:\ -Recurse | Where-Object {
    $_.PSIsContainer -and
    (Get-Acl $_.FullName).Access | Where-Object {
        $_.IdentityReference -eq 'Everyone' -and
        -not $_.IsInherited
    }
} | Select-Object -Expand FullName

请注意,这不会处理超过260个字符的路径。这是Win32 API的局限性,您需要使用其他工具来处理更长的路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与所有人共享的“用户”文件夹

为所有人(所有人除外)设置文件夹的权限

与用户“所有人”共享文件夹而不要求登录?

SSIS无法访问所有人都可以访问的文件夹

如何使用Powershell为所有人设置文件夹的写权限

JCIFS与所有人共享文件夹时如何进行身份验证?

Git:无法创建临时对象目录 - 虽然文件夹的权限设置为所有人?

使用所有人的写访问权限挂载NTFS分区

如何在C#中验证文件夹是否具有“所有人”-“完全控制:允许”的“安全性”?

无论Windows语言如何,如何使ICACLS命令将文件夹设置为对所有人具有完全访问权限?

删除所有人的讯息

如何从所有人都拥有但使用不同名称的位置打开文件?

使用 R 使某些服务器文件仅供除我以外的所有人读取

Python代码可根据售出的书籍数量查找所有人

如何使用文件夹名称查找所有文件?

如何使用机器人来管理所有人-discord.py

所有人都可执行文件,但仍然无法执行?

SQL给我发送相同文件的所有人的名字

列出所有人可执行文件的替代方法

宣布“为所有人使用Xamarin”之后,如何自由使用Xamarin?

Powershell - CloseMainWindow 适用于所有人?

.htaccess拒绝所有人都行不通

允许所有人访问特定页面

JS如何返回姓氏相同的所有人

面向所有人的 Python 作业 3.3

用列表向所有人承诺

Java String.Split拆分所有人

记事本击败了所有人?

向所有人授予我的访问权限?