Mit PowerShell Filesystem-Rechte setzen: ACL
Um bei einem bestehenden Ordner einen User mit Schreib-Berechtigungen hinzuzufügen, kann folgendes Skript verwendet werden:
Berechtigung hinzufügen
$folder="C:\Myfolder"
$username="Benutzername"
$permission="Modify"
$Acl = Get-Acl $folder
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule($username,$permission,'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)
Set-Acl $folder $Acl
Das Skript liest die aktuellen Berechtigungen aus und schreibt diese in die Variable $Acl. Im Anschluss wird ein Berechtigungs-Objekt mit dem User und den gewünschten Berechtigungen erstellt und in der Variable $Ar gespeichert. Zu guter Letzt wird das erstellte Objekt ($Ar) dann zu den zuvor ausgelesenen Berechtigungen hinzugefügt und diese dann auf den Ordner geschrieben: Set-Acl
Mit "ContainerInherit und ObjectInherit wird das Recht auf den Ordner und deren Files gesetzt.
Als Berechtigung könnte anstelle von "Modify" z.B. auch "FullControll" verwendet werden.
Vererbung unterbrechen
$Acl.SetAccessRuleProtection($True, $True)
Berechtigung entfernen
$aclRemove = $acl.Access | ?{ $_.IdentityReference -eq 'BUILTIN\Users' }
if ($acesToRemove) {
$acl.RemoveAccessRuleAll($aclRemove )
}

{{percentage}} % positiv

DANKE für deine Bewertung!
Top-Artikel in diesem Bereich
Als Alternative zu speziellen Programmen kann auch mit PowerShell das Datum einer Datei oder eines Ordners geändert werden.
Wer die Einstellungen für die Bildschirmsperre nicht ändern kann, kann alternativ regelmäßig die Maus bewegen, oder die Maus von einem Script bewegen lassen. Ursprünglich als AutoIt-Script veröffentlicht, habe ich das Script mit ein paar PowerShell-Zeilen nachgebaut. Wer die folgenden Befehle in eine PowerShell-Sitzung kopiert, verhindert, dass sich der Computer sperrt:
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
Hi, ich versuche gerade Dein Script in meinen Prozess mit einzubauen. Leider taucht da eine Fehlermeldung auf, die ich nicht verstehe: New-Object : Für "FileSystemAccessRule" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "5". In C:\Scripts\New AD User.ps1:29 Zeichen:7 + $Ar = New-Object system.security.accesscontrol.filesystemaccessrule( ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [New-Object], MethodException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand Ausnahme beim Aufrufen von "SetAccessRule" mit 1 Argument(en): "Der Wert darf nicht NULL sein. Parametername: rule" In C:\Scripts\New AD User.ps1:31 Zeichen:1 + $Acl.SetAccessRule($Ar) + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ArgumentNullException Was kann das bedeuten?