Usar icacls para enumerar la propiedad de los directorios

13

Estoy tratando de averiguar si IIS_IUSRS tiene control total de ciertas carpetas en los directorios.

Ejemplo

Tengo c: \ inetpub \ sites \

En c: \ inetpub \ sites \ tengo unas 50 carpetas de sitio

En cada carpeta tengo 3 carpetas llamadas cargas, medios, solicitudes.

Me gustaría saber si BUILTIN \ IIS_IUSRS tiene FullControl

Un par de problemas: no todos los sitios tienen cargas, medios, solicitudes, algunas solo pueden tener cargas, medios o medios, solicitudes o solo medios, etc.

Un par de comandos que he intentado usar 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"

Me gustaría modificar esto para buscar BUILTIN \ IIS_IUSRS como usuario

Anthony Fornito
fuente

Respuestas:

8

A riesgo de deshonrar sin vergüenza, aquí hay un archivo por lotes que devolverá cualquier directorio que nombre "BUILTIN \ IIS_IUSRS" con el permiso "Control total" (con la herencia de objetos y contenedores habilitada):

@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

Ejecute esto en su directorio de nivel superior. Producirá todos los directorios que encuentre con el permiso que está buscando.

Evan Anderson
fuente