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":
Diese für "Nur Unterordner und Dateien":
Hier noch mein Code, der euch vieleicht weiterhelfen kann:
Ich hoffe Ihr könnt mir weiterhelfen...
Gruss
Sergio
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":
Diese für "Nur Unterordner und Dateien":
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177806
Url: https://administrator.de/contentid/177806
Ausgedruckt am: 26.11.2024 um 09:11 Uhr
1 Kommentar
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
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