Setzen von Ordnerberechtigungen per Batch
Hi,
ich hab ne Aufgabe bekommen ein Skript zu schreiben, das Ordnerberechtigungen nach bestimmten Vorgaben setzt. Ich weiss nicht ob das per Batch lösbar ist, deswegen wollte ich hier erst mal fragen bevor ich anfange mich da noch tiefer einzulesen. Wenn das geht bin ich natürlich auch für alle Ratschläge dankbar.
Ich glaub ich schilder einfach mal am besten was wir hier vorhaben.
Meine Firma ist in der Forschung tätig und wir haben immer relativ viele Projekte am laufen, die natürlich auch viel Dateikram und so erzeugen.
Da bei Forschung sowas ja auch immer Geheimhaltung unterliegt dürfen auf jeden Projektordner nur bestimmte Leute zugreifen. Und unterhalb dieses Ordners auch nur auf bestimmte.
Das Schema sieht so aus
Dieser Teil mit den ___ dazwischen bekommt dann natürlich immer andere Werte.
Die Unterstruktur bleibt aber immer so.
Meine Idee war jetzt da ich das ja nicht bei allen Projekten immer händisch einstellen will das ich mir von dem jeweiligen Projektersteller in dem Ersten Ordner ne .txt ablegen lasse zb nach dem Schema
Der User der als Bearbeiter in dem ersten Verzeichnis ist und natürlich ich als Domänenadmin sollen Vollzugriff auf alles darunter bekommen.
Auf die Unterordner soll dann eben genau das angewendet werden wie es in der txt-file drinsteht.
Ich hoffe ich habs gut genug erklärt.
Es wäre echt super wenn mir jemand sagen kann ob das mit Batch realisierbar wäre.
Hm ich seh gerade entschuldigung das die Ordnernamen so komisch aussehen aber eigentlich sollten da underscores auftauchen. Anscheinend wird dann automatisch ne Unterstreichung vorgenommen.
Gruß
beowulf
[Edit Biber] Ein bisschen in gesetzt [/Edit]
ich hab ne Aufgabe bekommen ein Skript zu schreiben, das Ordnerberechtigungen nach bestimmten Vorgaben setzt. Ich weiss nicht ob das per Batch lösbar ist, deswegen wollte ich hier erst mal fragen bevor ich anfange mich da noch tiefer einzulesen. Wenn das geht bin ich natürlich auch für alle Ratschläge dankbar.
Ich glaub ich schilder einfach mal am besten was wir hier vorhaben.
Meine Firma ist in der Forschung tätig und wir haben immer relativ viele Projekte am laufen, die natürlich auch viel Dateikram und so erzeugen.
Da bei Forschung sowas ja auch immer Geheimhaltung unterliegt dürfen auf jeden Projektordner nur bestimmte Leute zugreifen. Und unterhalb dieses Ordners auch nur auf bestimmte.
Das Schema sieht so aus
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\A_Angebot
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\A_Berichte
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\F_Bilder
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\F_Messdaten_und_Messprotokolle
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\V_Angebote_Geraete_und_Leistungen_Dritter
Z:\projekte\zzz---Industrie___JJJJ_MM_dd-JJJJ_MM_dd___laufendeNummer___Firma___Bearbeiter___Status\V_Finanzierungsplan_und_Kontobericht
Die Unterstruktur bleibt aber immer so.
Meine Idee war jetzt da ich das ja nicht bei allen Projekten immer händisch einstellen will das ich mir von dem jeweiligen Projektersteller in dem Ersten Ordner ne .txt ablegen lasse zb nach dem Schema
A-Ordner
User1___schreiben___lesen___ändern
User2___lesen
User3___ändern
F-Ordner
User2___schreiben___lesen
User4___lesen
User5___ändern
V-Ordner
User1___schreiben
User4___schreiben
Auf die Unterordner soll dann eben genau das angewendet werden wie es in der txt-file drinsteht.
Ich hoffe ich habs gut genug erklärt.
Es wäre echt super wenn mir jemand sagen kann ob das mit Batch realisierbar wäre.
Hm ich seh gerade entschuldigung das die Ordnernamen so komisch aussehen aber eigentlich sollten da underscores auftauchen. Anscheinend wird dann automatisch ne Unterstreichung vorgenommen.
Gruß
beowulf
[Edit Biber] Ein bisschen in gesetzt [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72231
Url: https://administrator.de/forum/setzen-von-ordnerberechtigungen-per-batch-72231.html
Ausgedruckt am: 04.04.2025 um 21:04 Uhr
7 Kommentare
Neuester Kommentar
Berechtigungen verteilen geht per Batch! Die Gruppen müssen aber vorher schon existieren. Sieh dir dazu das Tool xcacls.exe an. Damit kannst du Berechtigungsgruppen oder User auf einem Ordner oder einer Datei berechtigen.
Allgemein empfehle ich dir folgende Strategie: Du erstellst pro speziell abgesicherten Ordner zwei Berechtigungsgruppen: Eine mit den NTFS-Rechten "Ändern" und eine mit den NTFS-Rechten "Lesen". Du erstellst also pro Share erstmal mindestens zwei Benutzergruppen (Ändern und Lesen). Diese berechtigst du auf der obersten Ebene dieses Shares und vererbst die Berechtigungen auf alle untergeordneten Objekte. In diese zwei Usergruppen packst du die User rein, die zumindest mal auf den Share Zugriff haben müssen.
Wenn du nun einen Unterordner speziell schützen willst, erstellst du für diesen Ordner zwei weitere Benutzergruppen (Ändern und Lesen) und packst dort wieder die entsprechenden User rein. Diese Berechtigung vererbst du dann wieder auf die untergeordneten Objekte usw.
Verwende die jeweiligen Berechtigungsgruppen jeweils nur für den dazugehörigen Ordner und für nichts anderes. Wenn du an einem anderen Ort etwas speziell schützen willst, erstell zwei neue Gruppen und pack die entsprechenden User wieder dort hinein.
Wir machen es im Betrieb auch so und diese Lösung ist am Anfang vielleicht mühsam zu realisieren, da viele Usergruppen erstellt werden müssen, aber danach hast du Ordnung und weisst immer, wo genau einer berechtigt ist.
Allgemein empfehle ich dir folgende Strategie: Du erstellst pro speziell abgesicherten Ordner zwei Berechtigungsgruppen: Eine mit den NTFS-Rechten "Ändern" und eine mit den NTFS-Rechten "Lesen". Du erstellst also pro Share erstmal mindestens zwei Benutzergruppen (Ändern und Lesen). Diese berechtigst du auf der obersten Ebene dieses Shares und vererbst die Berechtigungen auf alle untergeordneten Objekte. In diese zwei Usergruppen packst du die User rein, die zumindest mal auf den Share Zugriff haben müssen.
Wenn du nun einen Unterordner speziell schützen willst, erstellst du für diesen Ordner zwei weitere Benutzergruppen (Ändern und Lesen) und packst dort wieder die entsprechenden User rein. Diese Berechtigung vererbst du dann wieder auf die untergeordneten Objekte usw.
Verwende die jeweiligen Berechtigungsgruppen jeweils nur für den dazugehörigen Ordner und für nichts anderes. Wenn du an einem anderen Ort etwas speziell schützen willst, erstell zwei neue Gruppen und pack die entsprechenden User wieder dort hinein.
Wir machen es im Betrieb auch so und diese Lösung ist am Anfang vielleicht mühsam zu realisieren, da viele Usergruppen erstellt werden müssen, aber danach hast du Ordnung und weisst immer, wo genau einer berechtigt ist.
Wie gesagt, so machen wir es im Betrieb und es funktioniert. Wir haben allerdings, wenn man sich die schiere Grösse meines Betriebs anschaut (55'000 Mitarbeiter), Leute aus einzelnen Abteilungen dazu "verdammt", die Rechteverwaltung zu übernehmen. Diese Leute nennen sich Shareowner und diese haben die Berechtigung, auf den Shares Leute in Benutzergruppen hineinzupacken. Wir müssen hier "nur" noch Administrationsaufwand betreiben, wenn ein Ordner neu abgesichert werden muss, d.h. neue Berechtigungsgruppen erstellt werden müssen. Die User abfüllen kann dann der Shareowner.
Im Allgemeinen würde ich dir einfach davon abraten, einzelne User auf Ablagen zu berechtigen. Auch abraten würde ich dir von der Möglichkeit, Berechtigungen auf einzelne Dateien zu setzen. Setz die Berechtigungen lieber auf die Ordner. Wenn du diese zwei "Regeln" befolgst, verhinderst du zumindest das totale Chaos.
Im Allgemeinen würde ich dir einfach davon abraten, einzelne User auf Ablagen zu berechtigen. Auch abraten würde ich dir von der Möglichkeit, Berechtigungen auf einzelne Dateien zu setzen. Setz die Berechtigungen lieber auf die Ordner. Wenn du diese zwei "Regeln" befolgst, verhinderst du zumindest das totale Chaos.
Moin Beowulf,
zu Deiner letzten Frage: ja, es ist mit Batch möglich, Textdateien auszulesen und die jeweiligen Inhalte als Variablen/Parameter in einem Batch zu verwenden.
Wenn Du es transparent und pflegbar halten willst, würde ich Dein oben vorgeschlagenes Format (sinngemäß) so ändern:
da Textdateien im Batch besser zeilenorientiert ausgewertet werden können als wenn sie die weniger redundante Struktur von Ini-Dateien haben (so mit Sections und Entry=Value, wie Du oben skizziert hast).
Die Variante von mir, die dann abzählbar viele Schlüsselworte enthält ("lesen", "ändern", schreiben"- Enum heißt das wohl auf neudeutsch) und erkennbare eindeutiger Trennzeichen (die ":" ) ließe sich dann mit einer Kombination von 'Find "schlüsselwort" in Datei.txt' und/oder in einer FOR/F-Anweisung auswerten.
Und, was wichtiger wäre: der Aufbau ist toi toi toi für jeden DAU unmissverständlich.
Beispiele für solche FOR /F-Bätche findest Du in Bereich "Batch & Shell".
Grüße
Biber
zu Deiner letzten Frage: ja, es ist mit Batch möglich, Textdateien auszulesen und die jeweiligen Inhalte als Variablen/Parameter in einem Batch zu verwenden.
Wenn Du es transparent und pflegbar halten willst, würde ich Dein oben vorgeschlagenes Format (sinngemäß) so ändern:
A-Ordner: User1: schreiben, lesen, ändern
A-Ordner: User2: lesen
A-Ordner: User3: ändern
F-Ordner: User2: schreiben, lesen
F-Ordner: User4: lesen
F-Ordner: User5: ändern
V-Ordner: User1: schreiben
V-Ordner: User4: schreiben
Die Variante von mir, die dann abzählbar viele Schlüsselworte enthält ("lesen", "ändern", schreiben"- Enum heißt das wohl auf neudeutsch) und erkennbare eindeutiger Trennzeichen (die ":" ) ließe sich dann mit einer Kombination von 'Find "schlüsselwort" in Datei.txt' und/oder in einer FOR/F-Anweisung auswerten.
Und, was wichtiger wäre: der Aufbau ist toi toi toi für jeden DAU unmissverständlich.
Beispiele für solche FOR /F-Bätche findest Du in Bereich "Batch & Shell".
Grüße
Biber