使用powershell,有没有办法在目录中搜索已应用指定组权限的文件和文件夹?

时间:2014-04-08 03:17:04

标签: powershell

我需要熟悉Powershell,并且正在为使用Powershell解决的特定问题寻找参考点。

为了保持简短,一段时间后,有人授予了“每个人”的权限。在一个面向公众的网页目录中运行X个网站,在实时环境中,许多文件和文件夹都应用了权限,但它就像在干草堆中查找针。出于安全原因,我们正在尝试修补服务器,因此需要找到这些漏洞(因为我们没有理由拥有这些权限)而且我自己有一个迫切需要为另一个项目学习Powershell,所以我想解决Powershell脚本或Powershell命令的这个问题。最终导出结果会很好,但我已经找到了资源。

有人能为我提供一个跳跃点吗?我有编写批处理文件,ASP.NET,VB.NET,jQuery,HTML等的经验......我可以找出我似乎无法通过Google获得任何结果的代码。

谢谢!

1 个答案:

答案 0 :(得分:2)

这非常简单。您只需要从根目录(例如c:\test)递归地获取所有子目录,然后过滤该目录的访问控制列表(ACL)包含“ Everyone ”的列表。 “

以下是实现此目的的代码:

# Get child items (directories only) recursively, where the ACL contains 'Everyone'
Get-ChildItem c:\test -Directory -Recurse | Where-Object -FilterScript { (Get-Acl -Path $PSItem.FullName).AccessToString -match 'Everyone'; };