Windows 2003; Suchen Sie nach Ordnern mit nicht vererbten / geänderten Berechtigungen

8

Die Frage : Ich suche nach einer guten Möglichkeit, eine Verzeichnisstruktur (Windows 2003) zu überwachen / zu durchsuchen und Ordner zu finden, die entweder keine Berechtigungen von ihren Eltern erben oder zusätzliche Benutzer / Gruppen hinzufügen.

Die Hintergrundgeschichte

Wir migrieren einen alten Windows 2003-Dateiserver auf eine 2008 R2-Box. Dieser alte Server wurde von NT4 migriert. Die meisten aktuellen Ordner verwenden die alten (veralteten?) Gruppen Domain \ Administrators und Domain \ Users. Dies sind Gruppen, die ich in AD R2 noch nicht für Berechtigungen in 2008 R2-Berechtigungen verwenden kann.

Bevor ich also alle gemeinsam genutzten Daten vom alten auf den neuen Server kopiere, muss ich zuerst die Berechtigungen für die alten Freigaben "modernisieren". Ich weiß jedoch, dass in den letzten Jahrzehnten bei einigen [undokumentierten] Ordnern die Berechtigungen geändert wurden, um entweder nicht vom übergeordneten Ordner zu erben oder zusätzliche Benutzer hinzuzufügen. So meine Suche nach einem Weg, sie zu finden!

Chris_K
quelle

Antworten:

8

Ich würde empfehlen, Powershell (für Win2003: http://support.microsoft.com/kb/968929/en-us ) und ein zusätzliches Zusatzmodul auch dafür zu verwenden ( http://gallery.technet.microsoft.com) / scriptcenter / 1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 ).

Dies hilft Ihnen zuerst, die Vererbung für eine Ordnerstruktur mit (wenn Sie von Ihrem Startordner ausgeführt werden) zu erhalten, z.

get-childitem -Recurse | get-inheritance | export-CSV C:\Inheritance.csv -NoTypeInformation

Sie erhalten alle Dateien und Ordner in einer CSV-Datei, die bei Bedarf in Excel oder anderen DBs gefiltert werden kann.

Ein weiterer Vorteil des NTFSSecurity-Moduls besteht darin, dass Sie die Vererbung oder die ACLs auch während der Migration mit einem ähnlichen Powershell-Skript ändern können.

Sie können beispielsweise die Vererbung in einem Ordner (Ihrem Startordner) vollständig entfernen mit:

get-childitem | Disable-Inheritance

oder fügen Sie den Schalter -recurse erneut für alle Unterordner / Dateien hinzu.

Hoffe das hilft Prost

Mr.T.
quelle
1
+1, um mich auf das PowerShell-Modul für Dateisystemsicherheit aufmerksam zu machen.
pk.
Klein, aber äußerst funktional und nützlich! Ein Muss!
Volodymyr Molodets
1

Dies ist mit SetACL ziemlich einfach . Führen Sie es so aus:

SetACL -on "some path" -ot file -actn list -lst f:csv -rec cont

Dieser Befehl weist SetACL an, Berechtigungen nur von Objekten zu drucken , die explizite Berechtigungen haben, entweder weil ACEs zu einem Verzeichnis mit aktivierter Vererbung hinzugefügt wurden oder weil die Vererbung deaktiviert und neue ACEs festgelegt wurden.

SetACL verarbeitet Pfade mit mehr als 260 Zeichen und listet ACEs aus jedem Verzeichnis unabhängig von den aktuellen Berechtigungen auf, dh selbst wenn Sie nicht einmal über Lesezugriff verfügen, zeigt SetACL Ihnen, was vorhanden ist, und druckt die Berechtigungen aus (Administratorrechte erforderlich).

Helge Klein
quelle