sergio1993
Goto Top

Powershell, erweiterte NTFS Berechtigungen einem Ordner vergeben

Hallo Miteinander

Ich bin ein Neuling in der Windows Powershell. Jetzt habe ich einen Auftrag bekommen, die erweiterten Berechtigungen einem Ordner zu vergeben.
Dies soll alles über ein Skript laufen.

Ich habe jetzt mehrere Stunden daran gearbeitet aber komme einfach nicht ans Ziel.
Mein Ziel ist es folgende Berechtigungen zu setzen:

Diese für "Nur diesen Ordner":
a5d6b7fe77c58e47ccd3a2017937ba85


Diese für "Nur Unterordner und Dateien":
36803c299053e152f138c123bef81d2e


Hier noch mein Code, der euch vieleicht weiterhelfen kann:
 cls

$wPowerShell=new-object -comobject wscript.shell
$Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen
$Schaltfläche = 4 # Schaltfläche Ja und Nein

try
{
do
{
	$ordnername = Read-Host "Ordnername eingeben(Keine Sonderzeichen, kurzer Name und zusammengeschrieben)"  
	$path = "C:\Tests\" + $ordnername  
	if((Test-Path -Path $path) -eq $true)
	{
		Write-Host "Ordnername ist schon vorhanden, bitte geben Sie ein neuer Namen ein."  
	}
}
while((Test-Path -Path $path) -eq $true)

#Ordner Pfad definieren und erstellen
$NewFolder = New-Item -Path $path -ItemType "directory"  

$fulluser= Read-Host "Welche Gruppe soll Vollzugriff haben?"  

$Antwort=$wPowershell.popup("Gibt es eine Gruppe die Vollzugriff haben soll?",$Wartezeit,"Überschrift Ausgabefenster",$Schaltfläche)   

if ($Antwort-eq 6) # Fall "Ja" oder "Yes" gedrückt wurde... 
{
$readuser= Read-Host "Geben Sie die gewünschte Gruppe ein."  
}

$colRights = [System.Security.AccessControl.FileSystemRights]"Traverse"   

$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None 
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None 

$objType =[System.Security.AccessControl.AccessControlType]::Allow 
 

$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
    ($fulluser, $colRights, $InheritanceFlag, $PropagationFlag, $objType) 

$objACL = Get-ACL $NewFolder
$objACL.RemoveAccessRule($objACE) 

Set-ACL $NewFolder $objACL

}
catch
{
}

Ich hoffe Ihr könnt mir weiterhelfen...

Gruss
Sergio

Content-Key: 177806

Url: https://administrator.de/contentid/177806

Printed on: April 24, 2024 at 16:04 o'clock

Member: amaertens
amaertens Dec 20, 2012 at 09:54:24 (UTC)
Goto Top
Hi,

auch wenn der Thread schon sehr alt ist... vielleicht hilft es ja noch jemandem der das selbe Problem hat. (auf der Suche nach der Lösung bin ich jedenfalls hier gelandet)
Wenn die Zeile 34 im PowerShell Code durch folgende ersetzt wird:


$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]"ObjectInherit,ContainerInherit"


werden die Berechtigungen für alle Dateien, Ordner und Unterordner gesetzt...

Viele Grüße
Andre