我需要熟悉Powershell,并且正在为使用Powershell解决的特定问题寻找参考点。
为了保持简短,一段时间后,有人授予了“每个人”的权限。在一个面向公众的网页目录中运行X个网站,在实时环境中,许多文件和文件夹都应用了权限,但它就像在干草堆中查找针。出于安全原因,我们正在尝试修补服务器,因此需要找到这些漏洞(因为我们没有理由拥有这些权限)而且我自己有一个迫切需要为另一个项目学习Powershell,所以我想解决Powershell脚本或Powershell命令的这个问题。最终导出结果会很好,但我已经找到了资源。
有人能为我提供一个跳跃点吗?我有编写批处理文件,ASP.NET,VB.NET,jQuery,HTML等的经验......我可以找出我似乎无法通过Google获得任何结果的代码。
谢谢!
答案 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'; };