Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: hamspirit

hamspirit (Level 1) - Jetzt verbinden

21.11.2013 um 10:34 Uhr, 13069 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: https://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.
$sourceACL = get-acl -Path "C:\Temp\source"
$startFolder = "C:\Zielordner"

#Vererbung des ACL-Objektes deaktivieren (Parameter 1) bestehende Berechtigungen erhalten (Parameter 2)
$sourceAcl.SetAccessRuleProtection($true,$true)

#Alle Unterordner (erste Ebene des Ordners)
$allSubFolders = dir $startFolder | ?{$_.PSIsContainer}

#Für alle Unterordner der ersten Ebene die ACLs durch das des $sourceACL-Objektes ersetzen
foreach($folder in $allSubFolders){
    Set-Acl -Path $folder.FullName -AclObject $sourceACL
}
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:
#CSV-Datei
$csvPermissions = import-csv "C:\Temp\permissions.txt" -Delimiter ";"

foreach($line in $csvPermissions){
    #Freigabeordner
    $folder = $line.Freigabe
    #Berechtigungen
    $groups = $line.Berechtigungen.Split(",")
    #Wenn Ordner existier
    if ((Test-Path $folder)){
        #Wenn überhaupt Berechtigungen angegeben sind
        if ($groups.length -gt 0){
            #Neues leeres ACL-Objekt erzeugen
            $newACL = New-Object System.Security.AccessControl.DirectorySecurity
            #Vererbung der ACL deaktivieren
            $newACL.SetAccessRuleProtection($true,$false)
            #Für jede Gruppe die entsprechende AccessRule zur ACL hinzufügen
            for ($i = 0 ; $i -lt $groups.length; $i++){
                #Gebe der Gruppe "Vollzugriff" und vererbe diese Rechte an Unterordner und Objekte
                $perm = $groups[$i],"FullControl","ContainerInherit,ObjectInherit","None","Allow"
                $objACE = New-Object System.Security.AccessControl.FileSystemAccessRule $perm
                $newACL.AddAccessRule($objACE) 
            }
            # Schreibe die ACL
            set-acl -Path $folder -AclObject $newACL
        }
    }else{
        #Ordner wurde nicht gefunden
        echo "Der Ordner '$folder' existiert nicht unterhalb von '$startFolder'!"
    }
    
}
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:

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

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

$Path = @()
$Group = @()


$Permissions = Import-Csv E:\permissions.csv -delimiter '|'

    ForEach ($line in $Permissions)

             {
        write-host $line
        $acl = Get-Acl $line.Path
        $acl.SetAccessRuleProtection($True, $False)
        $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($line.Group,"ReadAndExecute", "ContainerInherit, ObjectInherit", "None", "Allow")
        $acl.AddAccessRule($rule)
        Set-Acl $line.Path $acl
       		}
Die Permissions.csv bestand aus:

Path|Group
E:\Ordner1\Ordner2\|Meine_AD_Gruppe
Bitte warten ..
Ähnliche Inhalte
Datenbanken

MS Access 2010 Berechtigung für Button(Klick)

gelöst Frage von Dr.CornwallisDatenbanken12 Kommentare

Liebe Gemeinde, ich bräuchte bitte Hilfe für folgendes Szenario: Auf einem Formular habe ich ein Textfeld, dieses gibt den ...

Grafikkarten & Monitore

Grafikkarte hat zu wenig Speicher

Frage von MetzelHaseGrafikkarten & Monitore5 Kommentare

Guten Tag zusammen, ich habe mittlerweile leichte Angst das meine Graka ein leichtes Problem hat. Ich habe die Geforce ...

Microsoft Office

EXCEL Link per Klick?

gelöst Frage von renesiebererMicrosoft Office1 Kommentar

Mahlzeit alle miteinander, Ich habe ein Excel Programm erstellt, dass ganz simpel mit einem Makro per Klick auf einen ...

Netzwerke

NTFS-Berechtigung

Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Neue Wissensbeiträge
Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 9 StundenAdministrator.de Feedback3 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 22 StundenHumor (lol)2 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Sicherheit
Diverse Sicherheitsprobleme aus dem Hause Intel
Tipp von DerWoWusste vor 2 TagenSicherheit

Unter anderem muss man mal wieder die Treiber für Intel HD Graphics updaten

Vmware

ESXi Management über PfSense (IPsec Tunnel) führt zu Massen an TCP Retransmissions

Tipp von Spirit-of-Eli vor 3 TagenVmware7 Kommentare

Moin zusammen, hier ein kurzer Beitrag zu einem Problem sobald man die Management Seite eines ESXs über einen IPsec ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Größe der Partition lässt sich nicht ändern mit gparted
Frage von achkleinFestplatten, SSD, Raid17 Kommentare

Hallo, ich habe eine 480GB auf eine 1TB-SSD geklont. Jetzt möchte ich den freien Speicherplatz per gparted an die ...

Sicherheit
Wie Kann Man eine IT-Notfallhandbuch erstellen für petasan
Frage von 142658Sicherheit14 Kommentare

Hallo Leute ich muss bald meine abschlussprojekt schreiben und brauch dringend hilfe wie man ein IT-Notfallhandbuch erstellen für Petasan(eine ...

Netzwerkmanagement
Werde dauernd aus dem WLAN geworfen (RouterOS)
gelöst Frage von amdkeksNetzwerkmanagement14 Kommentare

Hallo Zusammen, ich habe gestern ein update meiner Mikrotikgeräte gemacht und habe nun überall Version 6.45.5 drauf. Mikrotik Routerboard, ...

Windows Installation
Installation und Admin-Rechte
Frage von UserUWWindows Installation12 Kommentare

Annahme: UAC ist aktiv, der User ist "normaler" Benutzer. Eine Installation via setup.exe kann man in der Regel auf ...