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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 177806
Url: https://administrator.de/contentid/177806
Printed on: April 24, 2024 at 16:04 o'clock
1 Comment
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