Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

NTFS Ordnerberechtigungen - Vererbung der Berechtigungen aktivieren und deaktivieren

Frage Entwicklung Batch & Shell

Mitglied: Restock

Restock (Level 1) - Jetzt verbinden

27.08.2014, aktualisiert 29.08.2014, 6614 Aufrufe, 13 Kommentare

Hallo Zusammen,

ich stehe mal wieder vor einem Problem mit der Powershell.

Ich muss bei sehr vielen Ordner die Vererbung aktivieren um eine neue Berechtigung durch die komplette Struktur durcherben zu können. Anschließend muss ich das Skript wieder "rückwärts" laufen lassen um die Vererbung wieder zu deaktivieren. Hier geht es allerdings erst einmal nur um den ersten Teil.

Folgenden Quellcode habe ich mir bis jetzt zusammengestellt/gesucht:

01.
$Paths = get-content "C:\Ordnerliste.txt" 
02.
foreach($path in $Paths){ 
03.
    $acl = get-acl $path 
04.
    $isProtected = $false 
05.
    $preserveInheritance = $false 
06.
    $acl.SetAccessRuleProtection($isProtected, $preserveInheritance) 
07.
    Set-Acl $path -AclObject $acl 
08.
}
Das Skript läuft auch ohne eine Fehlermeldung in der Powershell durch, nur verändert sich in meiner Ordnerstruktur an der gewünschten Stelle einfach gar nichts. Ich habe auch schon wiederholt mit den true und flase werten herumprobiert, allerdings brachte dies auch keine Besserung.

Ich arbeite mit dem Skript momentan noch in einer Teststruktur, also her mit den Ideen, noch kann nichts kaputtgehen

Danke Euch!
Mitglied: emeriks
27.08.2014 um 12:56 Uhr
Hi,
lass mich raten: Du musst irgendwo ran, z.B. Berechtigungen anpassen, wo Du z.Z. auch als Admin nicht ran kommst?

E.
Bitte warten ..
Mitglied: colinardo
27.08.2014, aktualisiert um 13:11 Uhr
Moin,
machst du am besten mit takeown und icacls:
http://www.administrator.de/forum/ordnerfreigaben-einzelner-ordner-komp ...
wenn du in einigen Ordnern keine Zugriffsrechte hast. Mit Powershell wirst du da sonst auf einige Hindernisse treffen, ich spreche aus Erfahrung

Grüße Uwe
Bitte warten ..
Mitglied: Restock
27.08.2014 um 13:15 Uhr
Admin Rechte habe ich auf alle Ordner, ich könnte auch jeden Ordner einzeln anklicken und die Berechtigungen ändern, bzw. den Hacken setzen. Allerdings ist mir das bei knapp 800 Ordnern zu viel Aufwand.

Hintergrunde ist folgender. Wir haben eine Ordnerstruktur wo bestimmte Dokumente abgelegt werden. In dieser Struktur, darf allerdings nur in der untersten Ebene von den Usern etwas geändert werden (zb. Ordner erstellen). Aus diesem Grund haben wir die Berechtigungen hier aufgebrochen. Dumm nur wenn man jetzt dort an allen etwas Ändern muss..
Bitte warten ..
Mitglied: emeriks
LÖSUNG 27.08.2014, aktualisiert 29.08.2014
Erkläre doch mal bitte etwas genauer:
Wenn Du überall Adminrechte hast, warum musst Du dann erst überall die Vererbung ändern um sie dann später in einem Folgeschritt wieder rauszunehmen? Was willst Du denn zwischenzeitlich machen?

E.
Bitte warten ..
Mitglied: Restock
27.08.2014 um 14:15 Uhr
Im groben sieht meine Ordnerstruktur momentan so aus:
01.
Standort 
02.
	Abteilung 1 
03.
		Daten 1 
04.
			Eigener Ordner A 
05.
			Eigener Ordner B 
06.
		Daten 2 
07.
			Eigener Ordner A 
08.
			Eigener Ordner B 
09.
	Abteilung 2 
10.
		Daten 1 
11.
			Eigener Ordner A 
12.
			Eigener Ordner B 
13.
		Daten 2 
14.
			Eigener Ordner A 
15.
			Eigener Ordner B
Das ganze 19 mal und mit noch mehr "Abteilungen","Daten" und "Eigener Ordner" Ordner.

Das Problem an der ganzen Sache ist, dass unsere User hier nur unter dem Ordner "Daten" eigene Ordner erstellen, löschen und bearbeiten dürfen. Also habe ich vor ca. 2 Jahren hier die Berechtigungen aufgebrochen und das Löschen und Ändern nur auf dieser Eben erlaubt. Darüber haben die User nur Lesezugriff sodass die Ordnerstruktur nicht versehentlich oder unberechtigt geändert werden kann.

Da seit dieser Zeit das System durch einige Hände gegangen ist die leider nicht genau aufgepasst haben, wurden auf einigen Ordnern falsche Berechtigungen gesetzt oder weggenommen, sodass nun nicht mehr wirklich viel korrekt ist. Manche User können zu viel.. manche zu wenig usw.

Ich möchte nun die Vererbung wieder einschalten, alle Rechte entfernen und anschließend wieder richtig durcherben. Danach breche ich die Berechtigungen wieder auf und Erbe bis zu dem Ornder "Daten" das Leserecht, sodass auf der untersten Ebene die Schreibberechtigungen erhalten bleiben.

Mag sein das mein Denkansatz auch komplett falsch ist... Falls ja, ich bin für jede Idee offen.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 27.08.2014, aktualisiert 29.08.2014
wie du einen Reset der Permissions mit icalcs machst kannst du ja unter oben geposteten Link nachlesen.
So läuft das selbe hier mit Powershell:
01.
$ordner = "\\Server\Share\Ordner" 
02.
foreach($path in (dir $ordner -Recurse |?{$_.PSIsContainer})){ 
03.
    $acl = get-acl $path.FullName 
04.
    $acl.SetAccessRuleProtection($false, $false) 
05.
    $acl.Access | ?{$_.IsInherited -eq $false} | %{$acl.RemoveAccessRule($_)|out-null} 
06.
    Set-Acl $path.Fullname -AclObject $acl 
07.
}
Bedenke aber das Powershell ab einer Pfadtiefe mit mehr als 260 Zeichen Probleme bekommt. Deshalb empfehle ich bei solchen Änderungen immer icacls.
Bitte warten ..
Mitglied: emeriks
LÖSUNG 27.08.2014, aktualisiert 29.08.2014
Ah ja. Du willst also die Berechtigungen nochmal "nach unten durchdrücken", wie mit der GUI "Alle Berechtigungen für untergeordnete Objekte durch vererbbare Berechtigungen von diesem Ordner ersetzen" ?

Mal abgesehen davon, dass das mit Deinem Ansatz so wohl nicht ganz funktionieren wird, wäre es vielleicht sinnvoller, ein Script zu schreiben, welches generell in dieser Struktur die Berechtigungen setzt, wie sie sein sollen. Ich nehme doch an, dass die Struktur standardisiert ist, mit wiederkehrenden Unterordnernamen usw.
Da sollte es doch kein Problem sein, dass über Schleifen in einem Script abzubilden.

Der Ansatz mit dem einfachen "Vererbung an/ausschalten" bringt nichts, weil die expliziten (nicht geerbten), falschen ACE's dadurch nicht verändert werden.

E.
Bitte warten ..
Mitglied: emeriks
27.08.2014 um 14:34 Uhr
Hi Colinardo,
inwiefern berücksichtigt das Script, dass durchaus gewünschte, ursprünglich gesetzte explizite ACE's dabei erkannt werden?

E.
Bitte warten ..
Mitglied: colinardo
27.08.2014, aktualisiert um 14:37 Uhr
Zitat von emeriks:

Hi Colinardo,
inwiefern berücksichtigt das Script, dass durchaus gewünschte, ursprünglich gesetzte explizite ACE's dabei
erkannt werden?
meiner Meinung wollte er das doch nicht, er wollte doch erst mal alle gesetzten Rechte durch vererbte ersetzen. oder ??
Bitte warten ..
Mitglied: Restock
27.08.2014 um 14:58 Uhr
Richtig ich möchte die beiden in der GUI zu sehenden Hacken setzen.

Wenn ich Dich richtig verstehe, dann werden durch diese Aktion und das anschließende "von oben erben" die Berechtigungen die momentan in der GUI auf "<nicht geerbt>" stehen dadurch nicht entfernt/resettet.

Könnte ich das lösen indem ich vorher alle Berechtigungen (außer Admin und System) lösche? Das Skript dazu hätte ich noch hier rumfliegen...

Ja es ist eine komplett standardisierte Struktur die sich in jedem Standort wiederholt. Deswegen ist deine Idee vielleicht wirklich die bessere. Ich werde nochmal etwas recherchieren.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 27.08.2014, aktualisiert 29.08.2014
obiges Script aktiviert die Vererbung und entfernt dabei alle expliziten Berechtigungen, so dass nur noch vererbte Rechte erhalten bleiben. Das ganze rekursiv auf alle Unterordner.

oder
icacls "d:\Ordner" /Reset /t /c /q
macht das selbe ...
Bitte warten ..
Mitglied: emeriks
LÖSUNG 27.08.2014, aktualisiert 29.08.2014
"vom übergeordneten Objekt erben" heißt doch bloß, dass die ACL um ACE's aus dem übergeordneten Ornder, welche für die Vererbung freigegeben sind, ergänzt wird. Vorhandene ACE werden dadurch nicht geändert. Wenn man dann das Erben der Rechte wieder abschaltet, dann werden nur die geerbten ACE's wieder aus der ACL entfernt und der Zustand ist wie vorher.

Wenn man an übergeordneten Ordner sagt, "durch vererbbare Berechtigungen.....ersetzen", dann heißt das, dass die ACL's der untergeordneten Objekte geleert und mit vererbaren ACE's aus dem übergeordneten Ordner gefüllt werden. Dann kann aber mächtig daneben gehen, wenn Du eine Struktur hast, wo Du an einigen Stellen bewusst die Vererbung "abgeschaltet" und nur explizite ACE's gesetzt hast, dann würdest Du hier durch das "Ersetzen von Oben" diese ACE löschen. Wenn Du dann die Vererbung wieder aufhebst, dann hast Du die Wahl, die vererbten zu entfernen oder diese als nicht-geerbte (ich nenne diese immer "explizite") drin zu lassen. So oder so. Es würde dann beim vormaligen Vorhandensein von gewünschten "Ausnahmen" diese nicht mehr enthalten. Und ich nehme an, das ist nicht, was Du willst.

E.
Bitte warten ..
Mitglied: Restock
27.08.2014 um 15:34 Uhr
Okay alles klar - jetzt ist der Groschen gefallen. Habs verstanden! :D

Danke schonmal für Eure Hilfe. Ich denke nochmal über alles nach und schaue dann wie ich es am Ende angehe. Ich poste mein Ergbniss dann
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft
NTFS Berechtigungen - Vererbung (9)

Frage von Bierkasten zum Thema Microsoft ...

Exchange Server
gelöst Vererbung von Berechtigungen auf Unterordner in Outlook verhindern (6)

Frage von touro411 zum Thema Exchange Server ...

Batch & Shell
gelöst IE 11 Add-Ons per skript aktivieren und deaktivieren (4)

Frage von ganymed zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...