在 Windows 2003 上查找具有所有人写入/完全控制权限的文件/文件夹

在 Windows 2003 上查找具有所有人写入/完全控制权限的文件/文件夹

尝试清理此 IIS6 w/ PHP CGI 服务器上的权限,似乎有几个文件/文件夹对每个人都具有写入权限。(您可能可以猜到发生了什么,反复发生。)

所以,基本上,我正在寻找相当于find $directory -perm 777 -exec ls -ld {} \;

我可以做第一部分,清单文件提到每个人都有icacls,但似乎无法显示实际的 ACL:

icacls \directory /findSID *S-1-1-0 /t

查看subinacl文档和各种谷歌结果,似乎我可以使用 /subdirectories 和 /display 来实现这一点,但它立即返回,没有结果也没有错误:

C:\>subinacl /subdirectories \directory\*.* /findsid=Everyone /display
+subdirectories \directory\*.*
/findsid=Everyone
/display

Elapsed Time: 00 00:00:00
Done:        0, Modified        0, Failed        0, Syntax errors        0

答案1

这对我使用 powershell 和 pstools 很有效:

Get-ChildItem C:\temp\ -Recurse | Get-Acl | grep "Everyone"

您可能需要根据您的需要对其进行进一步的改进,但是 powershell 是这里的最佳选择。

答案2

Orbitron 的建议很棒,但如果您想使用纯 PowerShell 方式而不必安装 pstools,请查看 cmdlet select-string。您可能必须先将对象管道传输到文件,然后使用 select-string 使用它,或者您可以将其插入out-string管道。

Get-ChildItem -Recurse | Get-Acl | out-string -stream | select-string -pattern "everyone"

相关内容