Sie sind hier: Startseite
 Liste aller Codebeispiele

Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Das folgende Script zeigt das Ergänzen eines Rechteeintrags zu einer Rechteliste einer Datei im Dateisystem. Neue Rechteobjekte vom Typ FileSystemAccessRule benötigen fünf Angaben:
  • Kontoobjekt (NTAccount-Objekte oder SecurityIdentifier-Objekte)
  • Zu vergebende Rechte (Werte aus der FileSystemRights-Aufzählung)
  • Ziele der Vererbung (Werte aus der InheritanceFlags-Aufzählung)
  • Art der Vererbung (Wert aus der PropagationFlags-Aufzählung)
  • Art der Regel: Erlauben oder Verbieten (Wert aus der AccessControlType-Aufzählung)

Das folgende Script gewährt einem Benutzer Leserechte auf ein Verzeichnis.

Programmcodebeispiele Windows PowerShell-Skript

ACL schreiben: Lese- und Schreibrechte fuer einen Benutzer setzen

Eingabedaten

$DIR = "g:\daten\kunden"
$BENUTZER = "HS"

Hole ACL

$ACL = Get-Acl $DIR

"ACL vorher:"
$acl | format-list

ACE definieren

$Rights = [System.Security.AccessControl.FileSystemRights] "ReadData, ReadExtendedAttributes, ReadAttributes, ReadPermissions"
$Access=[System.Security.AccessControl.AccessControlType]::Allow
$Inherit=[System.Security.AccessControl.InheritanceFlags]::ContainerInherit `
   -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$Prop=[System.Security.AccessControl.PropagationFlags]::InheritOnly
$AccessRule = new-object System.Security.AccessControl.FileSystemAccessRule `
($BENUTZER,$Rights,$Inherit,$Prop,$Access)

ACE an ACL anfügen

$ACL.AddAccessRule($AccessRule)

ACL speichern

set-acl -AclObject $ACL -Path $DIR

Kontrolle

$ACL = Get-Acl $DIR
"ACL nachher:"
$acl | format-list

Andere Programmiersprache

Dieses Codebeispiel ist in anderen Sprachen (noch) nicht verfügbar.

Hinweise

Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B. Console.WriteLine() einsetzen.

Querverweise

 Definition '.NET Framework Class Library'  .NET & Visual Studio Community Portal