Code-Beispiel

Entfernen mehrerer Rechteeinträge aus einer Zugriffsrechteliste

Autor: Dr. Holger Schwichtenberg

Beschreibung

Das folgende Script löscht aus einer Zugriffsrechteliste alle Rechteeinträge, in denen das Lese- und Ausführungsrecht ("ReadAndExecute") vergeben wurde.

Programmcodebeispiele PowerShell-Skript

ACL schreiben: Aus einer Zugriffsrechteliste alle Rechteeinträge löschen, in denen das Lese- und Ausführungsrecht ("ReadAndExecute") steht

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

Zugriff auf ACEs

$aces =$acl.GetAccessRules($true, $true, [System.Security.Principal.NTAccount])

Schleife über alle ACEs

foreach ($ace in $aces)
{
write-host $ace.IdentityReference.ToString() "hat Zugang" $ACE.FileSystemRights $ACE.AccessControlType "Vererbt?" $ACE.IsInherited

Selektives Löschen

if ($ace.FileSystemRights.ToString() -match "ReadAndExecute")
{
"...wird entfernt!"
$Ergebnis = $acl.RemoveAccessRule($ace)
if ($Ergebnis) { echo "Wurde entfernt!"; $Count++ }
}
}

ACL speichern

set-acl -AclObject $ACL -Path $DIR

echo ($Count.ToString() + " ACEs wurden entfernt!")

Kontrollausgabe

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

 

Querverweise

 Liste aller Codebeispiele  Definition '.NET Framework Class Library'  PowerShell Community Portal

Buchtipp

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (5. Auflage Oktober 2022 (9. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autor(en): Dr. Holger Schwichtenberg
Erschienen 2022
Umfang: 1426 Seiten
ISBN: 3446472967

Beratung & Support

Schulungen zu diesem Thema

  Anfrage für eine individuelle Schulung zum Thema POWERSHELL   Gesamter Schulungsthemenkatalog