Jump to content

Ordnerbesitzer als Vollzugriff bei mehreren Ordnern eintragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo!

 

in einem Verzeichnis sind mehrere Ordner (ohne Inhalt) mit verschiedenen Besitzern. Ich möchte nun pro Ordner den Besitzer herausfinden und diesem auf "seinen" entsprechenden Ordner bestimmte Vollzugriffsrechte geben. Hintergrund: Bisher hat jeder Besitzer zwar Vollzugriff auf seinen Ordner, jedoch nur mit dem Zusatz "This Folder only". Ich benötige jedoch "This Folder, Subfolders and Files" hier.

 

Bisheriger Ansatz nach Internetrecherche:

 

$Folders = Get - ChildItem C:\Beispiel\

foreach {$Tempfolder in $Folders}

$Owner = Get - ACL $Folders

$ACL = New-Object system.Security.AccessControl.FileSystemAccessRule($Owner, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")

set-acl = $ACL

 

Funktioniert (natürlich) leider nicht... Kann mir jemand auf die Sprünge helfen?

 

Vielen Dank!

bearbeitet von floho
Geschrieben

Ne so wird das nix...  ;)  Habe leider keine Zeit, deswegen werde ich Dir mal nur den Code in den Raum schieben... Den Rest musst du Dir aber erst mal selber anpassen!

 

Ändere den Besitzer und passe Dir die Berechtigungen an wie du sie brachst und fertig ;-)

$Permission = Get-ChildItem -Path 'C:\Test' | Get-Acl

ForEach ($Obj in $Permission)
{
    $objUser = New-Object  -TypeName System.Security.Principal.NTAccount -ArgumentList ("BESITZER") 
    $colRights = [System.Security.AccessControl.FileSystemRights]'Modify'
    $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit 
    $PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None 
    $objType = [System.Security.AccessControl.AccessControlType]::Allow 
    $objACE = New-Object  -TypeName System.Security.AccessControl.FileSystemAccessRule  -ArgumentList ($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType) 
    $acl = Get-Acl $FQPath
    $acl.AddAccessRule($objACE)
}
Geschrieben (bearbeitet)

Dankeschön für den Code! Wo / wie wird in diesem denn die Variable $FQPath definiert?

Erhalte beim Testen die Meldung: Get-Acl : Cannot validate argument on parameter 'Path'. The argument is null or empty

bearbeitet von floho
Geschrieben (bearbeitet)

Ich habe den Code etwas umgestellt und zum Testen die $user Variable mit einem festen Benutzer definiert.

$user = "domain\username"
$Folders = Get-ChildItem -Path "C:\temp"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit 
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None 
$objType = [System.Security.AccessControl.AccessControlType]::Allow 

foreach ($Folder in $Folders)
{
$acl = Get-Acl $Folder
$permission = $user,"FullControl", $InheritanceFlag, $PropagationFlag, $objType
$accessrule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission 

$acl.AddAccessRule($accessrule)
set-acl $Folder $acl
}

Leider erhalte ich folgende Fehlermeldung ("temp_subfolder" ist ein Unterordner von C:\temp):

Get-Acl : Cannot find path 'temp_subfolder' because it does not exist.
At C:\temp\Untitled1.ps1:9 char:8
+ $acl = Get-Acl $Folder	
bearbeitet von floho
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...