nagus
Goto Top

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

Content-Key: 561113

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

Printed on: April 16, 2024 at 04:04 o'clock

Member: emeriks
emeriks Mar 27, 2020 at 07:01:19 (UTC)
Goto Top
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.
Member: Nagus
Nagus Mar 27, 2020 at 07:45:49 (UTC)
Goto Top
Moin,
schön wärs - dann wäre es ja einfach. Die bestehenden Berechtigungen sollen von RW auf R geändert werden, ohne das Gruppen entfernt werden. Es kommt lediglich eine Gruppe dazu, die komplett über alles RW Rechte bekommt.
Nagus
Member: emeriks
Solution emeriks Mar 27, 2020 updated at 08:53:01 (UTC)
Goto Top
Ok, das konnte ich jetzt nicht so eindeutig aus Deinem Text schließen.
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.
Hinweis: Die Besitzer-Eigenschaft in der ACL nicht vergessen!

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.
Member: Nagus
Nagus Mar 27, 2020 at 11:49:19 (UTC)
Goto Top
Okay - ich sehe schon ... is arbeit ... mist face-wink
Muss mich jetzt erstmal aufschlauen ...
Thx
Nagus