Dies scheint der Trick zu sein (möglicherweise mit einer Einschränkung), um alle Ordner zu finden, auf die der Benutzer "someuser" in diesem Beispiel auf dem Laufwerk C mit dem integrierten Windows-Befehl icacls Zugriff hat:
icacls c:\*. /findsid someuser /t /c /l
Das / t wird benötigt, um Verzeichnisse zu rekursivieren. Das / c wird benötigt, um ihm mitzuteilen, dass er weitermachen soll, auch wenn er auf Fehler stößt. Das / l bewirkt, dass es mit symbolischen Links (falls vorhanden) funktioniert. (Das letzte ist ein L, und diese Flags können in Groß- oder Kleinbuchstaben geschrieben werden.)
Das *.
wird von DOS-Oldtimern als die Art und Weise erkannt, wie man sagt, nach Verzeichnissen zu suchen, nicht nach Dateien. Wenn Sie jedoch Dateien und nicht Ordner suchen möchten, ändern Sie diese in *.*
. Natürlich können Sie sie auch auf ein beliebiges Laufwerk verweisen oder von einem beliebigen Ordner aus ausführen und den Pfad für Laufwerk / Ordner weglassen und relativ dazu suchen lassen Nur Ordner.
Ich suchte die gleiche Antwort wie das OP und fand diesen Eintrag, war aber verblüfft, nur ein Angebot zu sehen, das auf einem herunterladbaren Tool basierte. Wie andere habe ich es vorgezogen, etwas Eingebautes zu verwenden, und ich habe es in diesem icacls-Tool gefunden.
Und ich habe bestätigt, dass es unter Windows Server 2012, 2008 und Windows 7 funktioniert. Ich vermute, dass es auch unter Server 2003, Windows 8 usw. funktioniert.
Die resultierende Liste enthält Ordner, die Zeile für Zeile angezeigt werden, z. B .:
SID Gefunden: c: \ somedir \ somesubdir.
Beachten Sie, dass, wenn Sie dies als Benutzer ausführen, der selbst keine Berechtigungen für bestimmte Verzeichnisse hat, die durchsucht werden, Fehler in den Ergebnissen auftreten, wie z.
c: \ System Volume Information: Zugriff verweigert.
Und wenn Sie möglicherweise ein gesamtes Laufwerk durchsuchen, kann dies zu Hunderten solcher Fehler führen, wodurch es schwierig wird, die Ergebnisse darin zu finden.
Einige denken vielleicht, die Antwort wäre, die Befehlszeile als Administrator auszuführen, aber das führt einfach dazu, dass weitaus mehr solche Fehler angezeigt werden, da Sie jetzt Ordner durchsuchen, die zuvor ausgeblendet waren.
Wenn Sie diese Fehler ausblenden möchten, können Sie mit dem Befehl find nicht nur die Ergebnisse weiterleiten, die erfolgreich sind (diejenigen, die auf "SID found" verweisen), da die Fehler NICHT herausgefiltert werden von der Pipe zum Befehl find. Wenn Sie stattdessen alle Fehler entfernen möchten, müssen Sie den eher undurchsichtigen Trick anwenden, den Fehlerstrom (stderr) mithilfe von in den "Bit-Bucket" umzuleiten 2>nul:
. Das obige Beispiel würde also lauten:
icacls c:\*. /findsid someuser /t /c /l 2>nul:
Beachten Sie jedoch, dass einige der Ordner, die solche Fehler verursacht haben und jetzt ausgeblendet werden, möglicherweise Ordner sind, auf die der Name "someuser" Zugriff hat, auf die SIE jedoch keinen Zugriff haben. Sie sollten sich also überlegen, ob Sie diese Fehler einfach ignorieren. aber wenn du willst, kannst du es so machen.
Diese Möglichkeit schränkt möglicherweise den Wert dieser Antwort ein. Wenn jemand, der mehr mit den Dingen vertraut ist, meine Antwort gerne erweitern oder korrigieren möchte, würde ich es begrüßen.