Поиск файлов / папок с разрешениями на запись / полное управление для всех в Windows 2003

При попытке очистить разрешения на этом сервере IIS6 с PHP CGI создается впечатление, что несколько файлов / папок имеют права на запись для всех. (Вы, вероятно, можете догадаться, что происходит, неоднократно.)

Итак, в основном, я ищу эквивалент find $directory -perm 777 -exec ls -ld {} \;

Я могу сделать это в первой части, перечисляя файлы, в которых упоминается Все с icacls, но не может отображать фактический ACL:

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

Глядя на subinacl документация и различные результаты Google, кажется, что я могу использовать / подкаталоги и /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

2 ответа

Решение

Это работало для меня с powershell и pstools:

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

Возможно, вам придется усовершенствовать его больше для ваших нужд, но PowerShell - это то, что вам нужно.

Предложение Orbitron великолепно, но если вы хотите использовать чисто PowerShell без установки pstools, взгляните на select-string Командлет. Возможно, вам придется сначала передать конвейер объекта в файл, а затем использовать его с помощью select-string, или вы можете втиснуть out-string в трубопровод.

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

Другие вопросы по тегам