Sie sind hier: Startseite
 Liste aller Codebeispiele

Einzelne Rechteeinträge auslesen

Autor: Dr. Holger Schwichtenberg

Beschreibung

Möchte man die einzelnen Rechteeinträge eines Systembausteins genauer betrachten, dann sollte man selbst über die Rechteliste iterieren. Die von Access bzw. GetAccessRules() gelieferte Liste des Typs AuthorizationRuleCollection enthält im Falle des Dateisystems Objekte vom Typ FileSystemAccessRule. Diese Objekte enthalten wiederum folgende Attribute:
  • IdentityReference: Subjekt (Benutzer oder Gruppe), das Rechte hat
  • FileSystemRights: Rechte
  • AccessControlType: Rechteart (erlaubt oder verboten)
  • IsInherited: zeigt an, ob die Regel geerbt ist
  • InheritanceFlags: zeigt die Art der Vererbung nach unten an.

Benutzerkonten können in zwei Formen ausgedrückt werden: im Klartext oder durch Security Identifiers (SIDs). Bei der Verwendung von GetAccessRules() muss man angeben, wie man die Benutzer sehen will: [System.Security.Principal.NTAccount] (Klartext) oder [System.Security.Principal.SecurityIdentifier] (SID). Davor besitzt die Methode noch zwei Parameter, mit denen man steuern kann, welche Regeln man sehen will: die explizit auf dem Objekt gesetzten Regeln (erste Parameter) und/oder die vererbten Regeln (zweite Parameter). Die expliziten ACEs erscheinen immer zuerst in der Liste.

Der Zugriff auf das Code Property Access ist gleichbedeutend mit GetAccessRules($true, $true, [System.Security.Principal.NTAccount]). Möchte man andere Informationen, muss man GetAccessRules() explizit nutzen. In dem Skript werden beim zweiten Ausgeben der Liste nur die geerbten Regeln in SID-Form aufgeführt.

Programmcodebeispiele PowerShell-Skript

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

Rechte als NT-Konten holen

$aces =$a.access

entspricht: $aces =$a.GetAccessRules($true, $true, [System.Security.Principal.NTAccount])


Write-Host "Alle Regeln:" -F yellow
foreach ($ace in $aces)
{
write-host $ace.IdentityReference.ToString() "hat Zugang" $ACE.FileSystemRights $ACE.AccessControlType "Vererbt?" $ACE.IsInherited
}

$aces =$a.GetAccessRules($true, $false, [System.Security.Principal.SecurityIdentifier])

Write-Host "Nur die expliziten Regeln, in SID-Form:" -F yellow
foreach ($ace in $aces)
{
write-host $ace.IdentityReference.ToString() "hat Zugang" $ACE.FileSystemRights $ACE.AccessControlType "Vererbt?" $ACE.IsInherited
}

 

Querverweise

 Definition '.NET Framework Class Library'  PowerShell Community Portal

Buchtipp

Buchcover Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch (3. Auflage 2018/8. Auflage Gesamtreihe) Kindle Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch (3. Auflage 2018/8. Auflage Gesamtreihe) Kindle
Autoren: Dr. Holger Schwichtenberg
erschienen 2018, 1000 Seiten, 42,99 €
ISBN: 978-3-446-45923-6
Bestellung: Amazon.de oder im Buchhandel über ISBN 978-3-446-45923-6

Beratung & Support:

Schulungen zu diesem Thema:

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

Bücher zu diesem Thema:

 Windows PowerShell 4.0 - Das Praxishandbuch
 Windows Scripting Lernen, 6. Auflage
 Microsoft .NET 3.0 Crashkurs
 Windows Scripting Lernen 4. Auflage
 Windows Scripting (5. Auflage)
 Windows PowerShell 2.0 - Das Praxishandbuch
 Windows PowerShell 5.0 - Das Praxishandbuch
 Windows PowerShell - Konzepte, Praxiseinsatz, Erweiterungen
 Windows PowerShell 2.0-Scripting für Administratoren
 Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
 PowerShell: Anwendung und effektive Nutzung (shortcuts 125) Kindle Edition
 Windows PowerShell 5 – kurz & gut
 Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch (PDF)
 Windows Scripting 6. Auflage
 Windows 8.1 - Das Handbuch (27. November 2013)
 Essential PowerShell
 Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
 Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
 Windows Scripting Lernen 5. Auflage
 Windows PowerShell 3.0
 Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
 Windows 7 im Unternehmen
 Schnelleinstieg SQL Server 2012: Inkl. zahlreicher Praxisworkshops - Backup, Server-Sicherheit, Skalierbarkeit, Performance-Tuning, Troubleshooting, BI, T-SQL u.v.m.
 Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
 Windows Vista Business
 Windows PowerShell 2.0 - Crashkurs
 Windows Scripting Lernen
 Alle unsere aktuellen Fachbücher