Dateiserver und Rechte in der PowerShell steuern

Das File System Security PowerShell Module ist ein Werkzeug, mit dessen Hilfe Administratoren unter Windows umfassend Rechte in der PowerShell steuern können.

Windows speichert die Berechtigungen in der diskretionären Zugriffskontrollliste (DACL, Discretionary Access Control List), die ihrerseits Teil des Security Descriptors ist. Der Security Descriptor enthält auch die System Access Control List (SACL), in der das Auditing konfiguriert ist, und Mitgliederinformationen. Die DACL enthält Zugriffskontrolleinträge (ACEs, Access Control Entries), welche die Berechtigungen festlegen, die jemand auf das Objekt hat. Jeder ACE enthält die folgenden Werte:

Konto: Wem wird der Zugang gewährt oder verweigert. Windows speichert nicht den SamAccountName des Benutzers, sondern die SID (Security Identifier).

Rechte: Die gewährten oder verweigerten Berechtigungen.

Typ: Zugang gewähren oder verweigern.

IsInherited: True, wenn der ACE von einem übergeordneten Objekt geerbt wird.

VererbungFlags und PropagationFlags: Diese Bits steuern die Vererbung.

Standardmäßig erbt ein Sicherheitsbeschreiber auf dem Dateisystem Berechtigungen vom übergeordneten Objekt. Benutzer, die beispielsweise vollen Zugriff auf Laufwerk C haben, haben auch vollen Zugriff auf alle Unterordner, wenn die Vererbung nicht deaktiviert ist.

Berechtigungen mit der PowerShell verwalten

In der Grundausstattung bietet die PowerShell auf Windows-Servern nur die Cmdlets Get-Acl und Set-Acl. Mit deren Hilfe lassen sich Berechtigungen grundsätzlich steuern. Allerdings fehlen alle Funktionalitäten zwischen dem Abrufen und Setzen der ACL. Das Modul „File System Security PowerShell Module“ erweitert die PowerShell um weitere Möglichkeiten zur Steuerung der Berechtigungen.

So funktioniert das File System Security PowerShell Module

Das File System Security PowerShell Module bietet zehn Cmdlets zum Verwalten von Berechtigungen auf Dateisystemebene. Dazu gehört das Hinzufügen und Entfernen von ACEs, das Setzen der Vererbung, das Abrufen der aktuellen Berechtigungen oder das Abrufen der effektiven Berechtigungen für einen bestimmten Benutzer. Dadurch werden die funktionellen Lücken in der PowerShell geschlossen, um Berechtigungen für Dateiserver zu steuern und abzufragen.

Alle Cmdlets haben mindestens einen Parameter, der die Pipeline unterstützt. Sie können zum Beispiel die Berechtigung entfernen, indem Sie das Ergebnis von „Get-NTFSAccess“ an „Remove-NTFSAccess“ weitergeben:

Get-NTFSAccess -ExcludeInherited | Remove-NTFSAccess

Das Ergebnis kann aber auch exportiert werden, um Rechte zu sichern:

Import-Csv .\permissions.csv | Get-NTFSAccess

Alle Cmdlets in dem Modul können SIDs und auch SamAccountNames verarbeiten. Der Output enthält immer beides, außer die SID ist nicht auflösbar.

Die einfachste Aufgabe besteht darin, die DACL aus einer Datei abzurufen. Das Cmdlet, das das Modul zum Abrufen vorhandener Berechtigungen bereitstellt, ist Get-NTFSAccess. Sie können eine Datei oder einen Ordner über die Pipeline an dieses Cmdlet übergeben oder mit dem Path-Parameter arbeiten:

Get-Item D:\Data | Get-NTFSAccess

Get-NTFSAccess -Pfad D:\Data

Berechtigungen steuern

Berechtigungen lassen sich auch direkt mit dem Cmdlet Add-NTFSAccess hinzufügen, zum Beispiel:

Get-Item .\VMWare | Add-NTFSAccess -Account Contoso\JohnD -AccessRights FullControl

Die Cmdlets arbeiten mit allen Funktionen, welche durch die PowerShell zur Verfügung gestellt werden. So lassen sich mit den neuen Cmdlets auch Filter setzen, zum Beispiel mit:

Get-Item F:\backup | Get-NTFSAccess | Where-Object { $_.ID -like "*users*" }

Dokumentation der Cmdlets verfügbar

Microsoft stellt für die Cmdlets auch Hilfen zur Verfügung, die mit Standardmitteln in der PowerShell abgefragt werden können. Zusätzlich gibt es noch zwei Webseiten, auf denen ausführlicher Informationen zu den Cmdlets angezeigt werden:

NTFSSecurity Tutorial 1 – Getting, adding and removing permissions

NTFSSecurity Tutorial 2 – Managing NTFS Inheritance and Using Privileges

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Die Windows-Firewall per PowerShell verwalten

Kostenloser E-Guide: Mehr Sicherheit mit der PowerShell

Windows-Updates per PowerShell verteilen

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit