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

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
Link zu diesem Kommentar

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)
}
Link zu diesem Kommentar

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
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...