Usando icacls para listar a propriedade de diretórios

13

Estou tentando descobrir se o IIS_IUSRS tem o FullControl de determinadas pastas nos diretórios.

Exemplo

Eu tenho c: \ inetpub \ sites \

Em c: \ inetpub \ sites \, tenho cerca de 50 pastas de sites

Em cada pasta eu tenho 3 pastas chamadas uploads, mídia, solicitações.

Gostaria de descobrir se BUILTIN \ IIS_IUSRS tem FullControl

Alguns problemas: nem todos os sites têm uploads, mídia, solicitações, alguns podem ter apenas uploads, mídia ou mídia, solicitações ou apenas mídia etc.

Alguns comandos que tentei usar o 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"

Gostaria de modificar isso para procurar BUILTIN \ IIS_IUSRS como o usuário

Anthony Fornito
fonte

Respostas:

8

Correndo o risco de repudiar vergonhosamente, aqui está um arquivo em lotes que retornará todos os diretórios com o nome `BUILTIN \ IIS_IUSRS" com a permissão "Controle total" (com a herança de objeto e contêiner ativada):

@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

Execute isso no diretório de nível superior. Ele produzirá os diretórios encontrados com a permissão que você está procurando.

Evan Anderson
fonte