Ordnerstruktur Berechtigungen auslesen und anschließend die Schreibrechte entziehen - PS oder Batch?
Moin,
ich muss von einer (großen) Ordnerstruktur die Berechtigungen auslesen, um später die schreibberechtigungen auf nur lesend zu ändern. dazu kommt dann noch eine neue Gruppe die über alle Daten lesen darf. Die Berechtigungen sind teilweise bis in die oberste Ebenen unterschiedlich gesetzt ....
Was ist denn dafür besser/performanter:
Powershell oder ein Batch?
Hat jemand so etwas schon einmal gemacht und wie?
Bei ICACLS gibt es ja den /save Paramter. Kann ich die gespeicherte Datei dann bearbeiten und mit /restore einfach wieder zurückschreiben?
Bis dato habe ich die Berechtigungen immer nur explizit mit icacls gesetzt ...
Mit PS wird es dann wohl über PS und einer pipe in eine Datei funktionieren und das zurückschreiben mit set-acl. Allerdings habe ich das auch noch nie mit PS gemacht. Gibt es da Besonderheiten die ich beachten sollte?
Thx
Nagus
ich muss von einer (großen) Ordnerstruktur die Berechtigungen auslesen, um später die schreibberechtigungen auf nur lesend zu ändern. dazu kommt dann noch eine neue Gruppe die über alle Daten lesen darf. Die Berechtigungen sind teilweise bis in die oberste Ebenen unterschiedlich gesetzt ....
Was ist denn dafür besser/performanter:
Powershell oder ein Batch?
Hat jemand so etwas schon einmal gemacht und wie?
Bei ICACLS gibt es ja den /save Paramter. Kann ich die gespeicherte Datei dann bearbeiten und mit /restore einfach wieder zurückschreiben?
Bis dato habe ich die Berechtigungen immer nur explizit mit icacls gesetzt ...
Mit PS wird es dann wohl über PS und einer pipe in eine Datei funktionieren und das zurückschreiben mit set-acl. Allerdings habe ich das auch noch nie mit PS gemacht. Gibt es da Besonderheiten die ich beachten sollte?
Thx
Nagus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 561113
Url: https://administrator.de/contentid/561113
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
wenn die Berechtigungen einer ganzen Ordnerstruktur dahingehen geändert werden sollen, dass nur noch eine Gruppe dort lesen darf und sonst niemand (Außer SYSTEM und Administratoren) dort andere Rechte haben soll, dann brauchst Du gar nichts scripten.
Einmal mit TAKEOWN den Besitz der gesamten Struktur übernehmen.
Wenn das durch ist, dann kannst Du mit dem Explorer auf oberster Ebene (Stamm der Struktur) die ACL bearbeiten und unter "Erweitert" anklicken, dass er die ACL's aller untergeordneter Objekte ersetzen soll.
E.
wenn die Berechtigungen einer ganzen Ordnerstruktur dahingehen geändert werden sollen, dass nur noch eine Gruppe dort lesen darf und sonst niemand (Außer SYSTEM und Administratoren) dort andere Rechte haben soll, dann brauchst Du gar nichts scripten.
Einmal mit TAKEOWN den Besitz der gesamten Struktur übernehmen.
Wenn das durch ist, dann kannst Du mit dem Explorer auf oberster Ebene (Stamm der Struktur) die ACL bearbeiten und unter "Erweitert" anklicken, dass er die ACL's aller untergeordneter Objekte ersetzen soll.
E.
Ok, das konnte ich jetzt nicht so eindeutig aus Deinem Text schließen.
Dann bleibt wohl bloß PowerShell.
Tools, welche ich kenne und welche "Berechtigungen austauschen", laufen immer darauf hinaus, Prinzipale in den ACE auszutauschen. Aber da bleiben die Berechtigungen je ACE unverändert.
Dann bleibt wohl bloß PowerShell.
- Je Ordner und Datei die ACL einlesen.
- Prüfen, ob da explizite ACE enthalten sind. Wenn ja, dann die Berechtigungen in diesen ACE auf Nur-Lesen setzen.
- Die ACL zurückschreiben.
Tools, welche ich kenne und welche "Berechtigungen austauschen", laufen immer darauf hinaus, Prinzipale in den ACE auszutauschen. Aber da bleiben die Berechtigungen je ACE unverändert.