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

500 Ordner - NTFS Berechtigungen mit wenigen Klicks ändern

Frage Microsoft Windows Server

Mitglied: hamspirit

hamspirit (Level 1) - Jetzt verbinden

21.11.2013 um 10:34 Uhr, 7643 Aufrufe, 6 Kommentare, 1 Danke

Hallo zusammen,

eine Fileserver-Migration steht an.
Der neue Fileserver bestitz 15 Ordner auf der ersten Ebene und darunter zwei weitere Ebenen, die den Datenbestand strukturieren.
In der dritten Ebene sollen nun unterschiedliche Berechtigungen zum Einsatz kommen. In Summe sind das knapp 500 Ordner, die in der dritten Ebene liegen.

Mir widerstrebt es jetzt in jedem Ordner die Rechtevererbung von Hand zu unterbrechen und danach die entsprechenden AD-Gruppen zu berechtigen.

Gibt es eine Möglichkeit, um diese Vererbung der NTFS-Rechte ohne viel Klickerei zu unterbrechen?
Die Gruppen den Rechten hinzuzufügen wäre ja noch ok. Aber diese elendige Klickerei zum Unterbrechen der Vererbung nervt ungemein.

Ich könnte mir vorstellen, die Ordner Strukturen in eine Textdatei zu packen und dann ein Skript darüber rennen zu lassen. Ich habe nur keine Ahnung, wie das dann aussehen muss, damit die Vererbung danach unterbrochen ist.

Besten Dank vorab!

Grüße
HamSpirit
Mitglied: colinardo
21.11.2013, aktualisiert um 10:43 Uhr
Hallo HamSpirit,
hatten wir hier schon mehrfach. Mit Powershell und den CMDLets get-acl und set-acl kein Problem.
Siehe dazu auch folgenden Beitrag: http://www.administrator.de/forum/powershell-zugriffsberechtigungen-von ...
Ansonsten liefert eine Suche hier im Forum mit folgendem Suchstring die gewünschten Treffer :
"powershell acl"

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
21.11.2013, aktualisiert um 11:12 Uhr
Um es dir etwas einfacher zu machen, hier ein Script das du dazu hernehmen könntest:
Du legst für einen Ordner im System die gewünschten Berechtigungen fest die du auf die anderen Ordner übertragen möchtest, und trägst den Pfad in Zeile 1 des Scripts ein. Diese Berechtigungen werden dann auf alle Unterordner für den Pfad den du in Zeile 2 angibst angewendet inklusive Unterbrechung der Vererbung.
01.
$sourceACL = get-acl -Path "C:\Temp\source" 
02.
$startFolder = "C:\Zielordner" 
03.
 
04.
#Vererbung des ACL-Objektes deaktivieren (Parameter 1) bestehende Berechtigungen erhalten (Parameter 2) 
05.
$sourceAcl.SetAccessRuleProtection($true,$true) 
06.
 
07.
#Alle Unterordner (erste Ebene des Ordners) 
08.
$allSubFolders = dir $startFolder | ?{$_.PSIsContainer} 
09.
 
10.
#Für alle Unterordner der ersten Ebene die ACLs durch das des $sourceACL-Objektes ersetzen 
11.
foreach($folder in $allSubFolders){ 
12.
    Set-Acl -Path $folder.FullName -AclObject $sourceACL 
13.
}
Grüße Uwe
Bitte warten ..
Mitglied: hamspirit
22.11.2013 um 07:36 Uhr
Danke für diese Hilfestellung, Uwe.
Die Vererbung habe ich für die besagten Ordner nun unterbrochen. Das erspart einem doch viele Stunden Klickerei. ;)

Wie komplex wird es, wenn ich zwei Textdateien nutzen will, um Berechtigungen zuzuweisen.
In Textdatei1 sollen zeilenweise Ordner stehen. Bsp: d:\freigabe\Ordner\bla\bla
In Textdatei2 sind passend dazu Gruppen aus dem AD aufgeführt werden.
Ziel soll es sein, dass die AD-Gruppe aus Zeile 1 aus Textdatei2 Berechtigungen auf den Ordner aus Zeile 1 aus Textdatei1 erhält.

Habe noch keine Möglichkeit gefunden, Informationen aus zwei Dateien zusammenfließen zu lassen. Oder kann man das auf andere Weise erledigen?

Nochmals vielen Dank und beste Grüße
HamSpirit
Bitte warten ..
Mitglied: colinardo
22.11.2013, aktualisiert um 09:45 Uhr
Hallo Hamspirit,
ich würde das ganze in eine einzelne CSV-Datei packen die dann so aussehen könnte:
"FREIGABE";"BERECHTIGUNGEN" 
"d:\freigabe\Ordner\bla\bla";"DOMAIN\Group1,DOMAIN\Group2,DOMAIN\Group3"
also in der ersten Spalte der Ordner, und in der zweiten Spalte mit Komma voneinander getrennt die Gruppen. So hat man alles zusammen in einer Datei und muss nicht immer hin und her springen... Deine Variante ist auch kein Problem, aber ich sehe keinen Grund das zu trennen.

Wenn du willst bau ich dir dazu das entsprechende Script.

Was auch noch benötigt wird sind dann die entsprechenden Zugriffsrechte (R/W,Vollzugriff, etc)

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
22.11.2013 um 10:27 Uhr
Zu meinem Beispiel mit der CSV-Datei kannst du folgendes Script hernehmen:
01.
#CSV-Datei 
02.
$csvPermissions = import-csv "C:\Temp\permissions.txt" -Delimiter ";" 
03.
 
04.
foreach($line in $csvPermissions){ 
05.
    #Freigabeordner 
06.
    $folder = $line.Freigabe 
07.
    #Berechtigungen 
08.
    $groups = $line.Berechtigungen.Split(",") 
09.
    #Wenn Ordner existier 
10.
    if ((Test-Path $folder)){ 
11.
        #Wenn überhaupt Berechtigungen angegeben sind 
12.
        if ($groups.length -gt 0){ 
13.
            #Neues leeres ACL-Objekt erzeugen 
14.
            $newACL = New-Object System.Security.AccessControl.DirectorySecurity 
15.
            #Vererbung der ACL deaktivieren 
16.
            $newACL.SetAccessRuleProtection($true,$false) 
17.
            #Für jede Gruppe die entsprechende AccessRule zur ACL hinzufügen 
18.
            for ($i = 0 ; $i -lt $groups.length; $i++){ 
19.
                #Gebe der Gruppe "Vollzugriff" und vererbe diese Rechte an Unterordner und Objekte 
20.
                $perm = $groups[$i],"FullControl","ContainerInherit,ObjectInherit","None","Allow" 
21.
                $objACE = New-Object System.Security.AccessControl.FileSystemAccessRule $perm 
22.
                $newACL.AddAccessRule($objACE)  
23.
24.
            # Schreibe die ACL 
25.
            set-acl -Path $folder -AclObject $newACL 
26.
27.
    }else{ 
28.
        #Ordner wurde nicht gefunden 
29.
        echo "Der Ordner '$folder' existiert nicht unterhalb von '$startFolder'!" 
30.
31.
     
32.
}
Die Formatierung der CSV-Datei sollte wie oben geschrieben so aussehen (inklusive der Überschriften):
"Freigabe";"Berechtigungen"  
"d:\freigabe\Ordner\bla\bla";"DOMAIN\Group1,DOMAIN\Group2,DOMAIN\Group3"
Bin jetzt erst mal hier im Beispiel von "Vollzugriff" Rechten für die Gruppen ausgegangen, das lässt sich aber anpassen ...

Grüße Uwe
Bitte warten ..
Mitglied: hamspirit
26.11.2013 um 10:21 Uhr
Uwe, vielen Dank.

Das Unterbrechen der Vererbung habe ich nun mit diesem Script erledigt:

01.
for /f "tokens=*" %%a in (e:\folderlist2.txt) do ( 
02.
  icacls %%a /inheritance:d 
03.
)

Für die Vergabe von Berechtigungen auf die verschiedenen Ordner kam dieses Powershell-Script zum Einsatz:

01.
$Path = @() 
02.
$Group = @() 
03.
 
04.
 
05.
$Permissions = Import-Csv E:\permissions.csv -delimiter '|' 
06.
 
07.
    ForEach ($line in $Permissions) 
08.
 
09.
10.
        write-host $line 
11.
        $acl = Get-Acl $line.Path 
12.
        $acl.SetAccessRuleProtection($True, $False) 
13.
        $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($line.Group,"ReadAndExecute", "ContainerInherit, ObjectInherit", "None", "Allow") 
14.
        $acl.AddAccessRule($rule) 
15.
        Set-Acl $line.Path $acl 
16.
       		}
Die Permissions.csv bestand aus:

01.
Path|Group 
02.
E:\Ordner1\Ordner2\|Meine_AD_Gruppe
Bitte warten ..
Ähnliche Inhalte
Microsoft
gelöst NTFS Berechtigungen - Vererbung (11)

Frage von Bierkasten zum Thema Microsoft ...

Batch & Shell
gelöst Batch, die Ordner erstellt und Berechtigungen setzt (12)

Frage von lordofremixes zum Thema Batch & Shell ...

Datenbanken
gelöst MS Access 2010 Berechtigung für Button(Klick) (12)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Windows Userverwaltung
gelöst Performance bei NTFS-Berechtigungen in Fileserver (11)

Frage von BleppSatter zum Thema Windows Userverwaltung ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...

Voice over IP
Über Fritzfax over IP gehen nur einige Faxe (12)

Frage von shearer9 zum Thema Voice over IP ...