svnmr01
Goto Top

Ordnerzugriffsrechte eines bestimmten Benutzers herausfinden

Wie kann ich feststellen, auf welche Dateien er Zugriff hat?

kleines Problem: Ich habe ca. 10 000 Ordner mit 12 000 Dateien und möchte heraus finden, auf welche Ordner/Dateien ein bestimmter Benutzer Zugriff (welcher Art auch immer) Zugriff hat. Ich habe es mit cacls versucht.
Ich kann damit ja herausfinden wer auf welchen Ordner Zugriff hat - in der Art auf Ordner XY hat Zugriff: A, B, D.
Ich brauche die Rückwärtssuche- A hat Zugriff auf Ordner AC, CD, XX.

Ich suche ein entsprechendes Script/Tool oder einfach den entsprechenden Befehl.

Kann jemand helfen?

Besten Dank schonmal im Voraus!!

Gruß Sven

Content-Key: 93178

Url: https://administrator.de/contentid/93178

Printed on: April 20, 2024 at 02:04 o'clock

Member: miniversum
miniversum Jul 29, 2008 at 19:41:03 (UTC)
Goto Top
Ungetestet würd ichs in der Form an der cmd versuchen:
FOR /F "delims=" %i in ('dir /B /S "C:\Ordner"') do (cacls "%~fi"|find "Benutzername">NUL 2>NUL && echo %~fi)
Member: whatever
whatever Jul 30, 2008 at 11:38:57 (UTC)
Goto Top
Passt vielleicht nicht ganz zur Frage, aber mit dem Tool "AccessEnum" von Microsofts Sysinternal Tools kann man sich die Zugriffsrechte von Gruppen und Usern auf Ordnerstrukturen anzeigen lassen.
Man kann sich auch nur die veränderten Userrechte ansehen, wenn z.B. alles nach unten durchkopiert wurde, aber bestimmte Ordner noch mal extra angefasst wurden.

Hab das Tool schon ewig nicht mehr benutzt, daher weiß ich nicht, ob man auch genau das machen kann, was Du suchst.
Aber vielleicht schaust Du es Dir mal an.

Gibt auch noch "AccessChk". Damit geht das vielleicht noch eher...
Member: svnmr01
svnmr01 Jul 30, 2008 at 15:08:54 (UTC)
Goto Top
@miniversum: der Befehl funktioniert, danke dir

@whatever: das Tool habe ich ausprobiert, aber für meine Zwecke nicht ganz das Richtige. Trotzdem auch dir besten Dank
Member: svnmr01
svnmr01 Jul 31, 2008 at 16:06:45 (UTC)
Goto Top
hallo miniversum: könntest du mir in einer Mußestunde, kurz deinen Befehl erklären?
Ich bin ziemlich neu in diesem Geschäft und Scripts sind bömische Dörfer für mich.
Member: miniversum
miniversum Aug 01, 2008 at 07:54:04 (UTC)
Goto Top
Also:
Der Befehl
dir /B /S "C:\Ordner"
würde dir eine Auflistung aller Dateien und Ordner um Verzeichnis "C:\Ordner" und den Unterverzeichnissen liefern.
Diese Liste wird mit der For-Schleife duchlaufen:
FOR /F "delims=" %i in ('dir /B /S "C:\Ordner"') do (
Jeder Eintrag dieser Liste steht dann, innerhalb der Klammer, als vollständige Pfadangabe in der Variabeln "%~fi".
Mit dem Befehl:
cacls "%~fi"
Kann man sich nun also für jede Datei anzeigen lassen welche Benutzer auf diese Datei bzw. dieses Verzeichnis Zugriffsrechte hat.
Diese Ausgabe wird aber durch das
|find "Benutzername"
Umgeleitet, so das in der Ausgabe einer Datei gesucht wird ob der angegebene Benutzername dort drin steht.
Diese Ausgabe wird wiederum auch unterdrückt mit den:
>NUL 2>NUL
Findet nun das find in der Ausgabe den gewünschten Benutzernamen liefert es den Errorlevel 0 zurück, wenn nicht dann Errorlevel 1. Durch das anhängen des
&&
wird nun ein weiterer Befehl ausgeführt, wenn der Errorlevel 0 beträgt, also der Benutzername gefunden wurde.
In diesem Fall wird mit
echo %~fi
der Dateiname der Datei ausgegeben die aktuell verarbeitet wird.

Ich hoffe das war einigermasen verständlich erklärt.