Ich habe einen Benutzer in einer Domäne, der Zugriff auf mehrere Unterordner in mehreren Ordnern hat. Seine Rechte wurden ziemlich genau definiert. Jetzt verlässt er das Unternehmen, wird aber weiterhin für eine Firma als Vertragsressource arbeiten.
Ich muss alle Ordner finden, auf die er Zugriff hatte, und seine Berechtigungen widerrufen und ihn dann mit einem anderen Satz von Zugriffsberechtigungen einrichten.
Gibt es ein Tool (vorzugsweise Freeware), das alle NTFS-Berechtigungen für einen bestimmten Benutzer auflistet? Ich habe es mit AccessEnum von Sysinternals versucht, aber die Liste kann nicht nach Benutzername gefiltert werden und ist für mich nutzlos. Ich habe mir auch CACLS angesehen, aber soweit ich das beurteilen kann, werden die Berechtigungen nach Datei und nicht nach Benutzer sortiert angezeigt.
Irgendwelche Ideen?
quelle
Antworten:
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:
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: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.
quelle
Sie können PowerShell verwenden, ohne etwas anderes herunterladen zu müssen. Dies funktioniert mit v2.0 und höher:
Es ist nicht so sauber wie das, was mit PowerShell v3 und höher verfügbar ist, aber es wird funktionieren. Dadurch wird eine Liste der gefundenen Verzeichnisse im Zeichenfolgenformat ausgegeben.
Sie können sie problemlos als Objekte ausgeben und mit ihnen weiterarbeiten (sie in eine CSV-Datei exportieren, die Einträge entfernen, wenn Sie sie finden, ein Ticket mit den Informationen aktualisieren ... usw.), indem Sie das Eingabeobjekt des Schreib- Anrufe ausgeben.
quelle
if ($ACL.IdentityReference -like $ReferenceAccountName -and !$ACL.IsInherited){
Ich habe eine Lösung für meine eigene Frage gefunden. Ich glaube, es ist sehr einfach und sauber. Sie müssen nur subinacl installieren und eine Zeile an der Eingabeaufforderung ausführen.
Sie können subinacl hier herunterladen . Obwohl es offiziell nur unter Windows 2000, Windows XP und Windows Server 2003 unterstützt wird, sollte es auch unter Windows Vista, Windows Server 2008 und Windows 7 funktionieren.
Als Nächstes führen Sie an der Eingabeaufforderung Folgendes aus:
Wobei X: das Laufwerk ist, das Sie scannen, und Benutzername der Benutzer, dessen Berechtigungen Sie auflisten möchten. Das Scannen kann einige Zeit dauern und Sie erhalten die Ergebnisse in TEXTFILENAME.TXT.
Wenn Sie den Schalter / noverbose verwenden, erhalten Sie eine kompakte Liste von Zugriffsberechtigungen - im Grunde sehen Sie, auf welche Verzeichnisse der Benutzer Zugriff hat (mit Zugriffsmasken und einigen anderen Dingen, die manchmal nützlich sein können).
Ich habe die Liste mit OpenOffice Calc importiert und dann einen benutzerdefinierten Filter angewendet und nur für die Zeilen gefiltert, die mit + DATEI beginnen . Diese Zeilen enthalten Verzeichnisse, auf die der Benutzer Zugriff hat. Auf diese Weise erhalten Sie mit einfachen Tools nur relevante Informationen.
Da die Vererbung häufig für übergeordnete Verzeichnisse aktiviert ist, ist die tatsächliche Anzahl der Verzeichnisse, die Sie möglicherweise zum Anpassen von Berechtigungen aufrufen müssen, in der Regel erheblich niedriger als die Liste selbst.
quelle