Использование icacls для составления списка владельцев каталогов

13

Я пытаюсь выяснить, есть ли в IIS_IUSRS FullControl определенных папок в каталогах.

пример

У меня есть c: \ inetpub \ sites \

Под c: \ inetpub \ sites \ у меня есть около 50 папок сайта

В каждой папке у меня есть 3 папки, которые называются загрузки, медиа, запросы.

Я хотел бы узнать, есть ли у BUILTIN \ IIS_IUSRS FullControl

Пара проблем. Не на всех сайтах есть загрузки, мультимедиа, запросы, некоторые могут иметь только загрузки, мультимедиа или мультимедиа, запросы или просто мультимедиа и т. Д.

Пара команд, которые я пробовал использовать Powershell.

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

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

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

Я хотел бы изменить это, чтобы искать BUILTIN \ IIS_IUSRS в качестве пользователя

Энтони Форнито
источник

Ответы:

8

На риск бесстыдного повторения, вот пакетный файл, который вернет все каталоги с именем `BUILTIN \ IIS_IUSRS" с разрешением "Полный доступ" (с включенным наследованием объекта и контейнера):

@echo off
for /f "usebackq delims=" %%i in (`dir /ad /s /b`) do call :df "%%i"
goto :EOF

:df
icacls %1 | find /i "BUILTIN\IIS_IUSRS:(OI)(CI)(F)" >NUL 2>NUL
if not errorlevel 1 echo %~1

Запустите это в вашем каталоге верхнего уровня. Он выведет любые найденные каталоги с разрешением, которое вы ищете.

Эван Андерсон
источник