Verwenden von icacls zum Auflisten des Besitzes von Verzeichnissen

13

Ich versuche herauszufinden, ob IIS_IUSRS über FullControl für bestimmte Ordner unter Verzeichnissen verfügt.

Beispiel

Ich habe c: \ inetpub \ sites \

Unter c: \ inetpub \ sites \ habe ich ungefähr 50 Site-Ordner

In jedem Ordner habe ich 3 Ordner namens Uploads, Medien, Anfragen.

Ich möchte herausfinden, ob BUILTIN \ IIS_IUSRS FullControl hat

Einige Probleme, nicht alle Websites haben Uploads, Medien, Anfragen, manche haben möglicherweise nur Uploads, Medien oder Medien, Anfragen oder nur Medien usw.

Einige Befehle, die ich mit Powershell ausprobiert habe.

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"

Ich möchte dies ändern, um nach BUILTIN \ IIS_IUSRS als Benutzer zu suchen

Anthony Fornito
quelle

Antworten:

8

Auf die Gefahr einer unverschämten Wiederholung folgt eine Batch-Datei, die alle Verzeichnisse mit dem Namen "BUILTIN \ IIS_IUSRS" und der Berechtigung "Vollzugriff" zurückgibt (bei aktiviertem Objekt- und Container-Erbe):

@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

Führen Sie dies in Ihrem obersten Verzeichnis aus. Alle gefundenen Verzeichnisse werden mit der von Ihnen gesuchten Berechtigung ausgegeben.

Evan Anderson
quelle