Sie sind hier: Startseite
 Liste aller Codebeispiele

Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Zum Entfernen eines Rechteeintrags (Access Control Entry – ACE) aus der Zugriffsrechteliste dient die Methode RemoveAccessRule(), die von NativeObjectSecurity an alle Rechteklassen vererbt wird. Die Methode erwartet als Parameter ein Objekt vom Typ AccessContolEntry.
Möchte man alle Einträge zu einem Benutzer entfernen, kann man PurgeAccessRules() unter Angabe eines Benutzerkontoobjekts (nicht des Kontonamens!) verwenden.

Das folgende Script löscht aus einer Zugriffsrechteliste alle Rechteeinträge zu einem bestimmten Benutzer.

Programmcodebeispiele Windows PowerShell-Skript

ACL schreiben: Alle ACEs eines Benutzer loeschen

Eingabedaten

$DIR = "g:\daten\kunden"
$BENUTZER = "itv\HS"
$Count = 0

Kontrollausgabe

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

ACL holen

$acl = Get-Acl g:\daten\kunden

$Account = new-object system.security.principal.ntaccount("itv\hs")
$acl.PurgeAccessRules($Account)
set-acl -AclObject $ACL -Path $DIR

ACL speichern

set-acl -AclObject $ACL -Path $DIR

Kontrollausgabe

$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