Mobile-Menu

Berechtigungen in Windows mit der PowerShell steuern Cmdlets und Skripte für die Konfiguration von Rechten

Von Thomas Joos 4 min Lesedauer

Mit der PowerShell ist es möglich, recht umfassend Berechtigungen in Windows zu steuern. Dabei lassen sich auch NTFS-Rechte, Zugriffe auf Freigaben und Gruppenmitgliedschaften festlegen: mit einzelnen Cmdlets oder auch mit Skripten.

Über entsprechende Cmdlets können Windows-Berechtigungen detailliert in der PowerShell gesteuert werden.(Bild:  frei lizenziert /  Pixabay)
Über entsprechende Cmdlets können Windows-Berechtigungen detailliert in der PowerShell gesteuert werden.
(Bild: frei lizenziert / Pixabay)

Mit der PowerShell lassen sich recht umfangreich Rechte für Verzeichnisse, Laufwerke, Gruppenmitgliedschaften und auch Einstellungen und Berechtigungen für Freigaben steuern. Wir haben das Thema bereits in den beiden Beiträgen „Freigabeberechtigungen in der PowerShell steuern“ und „Freigaben mit der PowerShell erstellen und Benutzerzugriffe steuern“ besprochen.

Der Beitrag „Berechtigungen in Windows mit der PowerShell steuern“ zeigt weitere Möglichkeiten. Im folgenden Beitrag vertiefen wir diese Möglichkeiten noch weiter und zeigen, wie sich die verschiedenen Cmdlets miteinander kombinieren lassen.

Verschiedene Cmdlets steuern die Berechtigungen in Windows

Für die Verwaltung von Berechtigungen stehen zum Beispiel folgende Cmdlets zur Verfügung:

  • „Get-Acl“: liest Zugriffssteuerungslisten (ACLs) von Objekten wie Dateien, Verzeichnissen oder Registry-Schlüsseln.
  • „Set-Acl“: ändert oder passt die Berechtigungen eines Objekts durch Modifikation der ACLs an.
  • „New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule“: erstellt ein AccessRule-Objekt zur Definition von Datei- und Verzeichnisberechtigungen.
  • „Get-ADUser“: ruft Informationen über AD-Benutzer ab.
  • „Set-ADUser“: ändert Eigenschaften von AD-Benutzern, einschließlich Berechtigungen.
  • „Get-ADGroup“: ermöglicht Abrufen von Informationen zu AD-Gruppen.
  • „Add-ADGroupMember“: fügt Benutzer zu AD-Gruppen hinzu.
  • „Get-ADOrganizationalUnit“: ermöglicht Zugriff auf Organisations-Einheiten (OUs) in Active Directory.
  • „Set-ADOrganizationalUnit“: ändert Eigenschaften von OUs, einschließlich Berechtigungen.
  • „Get-ADPermission“ und „Add-ADPermission“: speziell für den Zugriff und die Verwaltung von Berechtigungen in Exchange-Umgebungen.

Die Cmdlets lassen sich auch miteinander kombinieren und mit dem „Pipe“-Zeichen („|“) zusammenfassen, sodass sich auch komplexere Befehle umsetzen lassen.

Verwalten von Datei- und Verzeichnisberechtigungen mit Get-Acl und Set-Acl

Das Lesen und Ändern von Zugriffsrechten auf Dateien und Verzeichnissen erfolgt durch die Kombination von „Get-Acl“ und „Set-Acl“:

$acl = Get-Acl -Path C:\MeinVerzeichnis$acl.SetAccessRuleProtection($false, $true)Set-Acl -Path C:\MeinVerzeichnis -AclObject $acl

In diesem Beispiel werden vererbte Berechtigungen von „C:\MeinVerzeichnis“ entfernt. Nehmen wir zum Beispiel das Cmdlet „Get-Acl“, das verwendet wird, um die Zugriffssteuerungsliste (ACL) eines bestimmten Pfades abzurufen. Bei Kombination mit „New-Object“ und „Set-Acl“ können Sie neue Berechtigungseinträge erstellen und diese einem Verzeichnis oder einer Datei zuweisen:

$acl = Get-Acl -Path C:\BeispielVerzeichnis$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList "Everyone", "FullControl", "Allow"$acl.AddAccessRule($accessRule)Set-Acl -Path C:\BeispielVerzeichnis -AclObject $acl

Änderung von Active-Directory-Benutzerinformationen mittels Get-ADUser und Set-ADUser

Diese Cmdlets erlauben die Abfrage und Modifikation von AD-Benutzereigenschaften:

$user = Get-ADUser -Identity jsmithSet-ADUser -Identity $user -Description "Neue Beschreibung"

Hier wird die Beschreibung für den Benutzer „jsmith“ aktualisiert. In einem Active-Directory-Szenario kann die Kombination von „Get-ADUser“, „Get-ADGroup“ und „Add-ADGroupMember“ verwendet werden, um Benutzer zu finden, die einem bestimmten Kriterium entsprechen, und sie dann zu einer Gruppe hinzuzufügen:

$users = Get-ADUser -Filter { Department -eq 'Marketing' }$group = Get-ADGroup -Identity 'MarketingTeam'$users | ForEach-Object { Add-ADGroupMember -Identity $group -Members $_ }

Hinzufügen von Benutzern zu AD-Gruppen durch Get-ADGroup und Add-ADGroupMember

Durch diese Kombination lassen sich Benutzer in bestimmte Gruppen einfügen:

$group = Get-ADGroup -Identity 'Vertriebsgruppe'Add-ADGroupMember -Identity $group -Members jsmith

Das Beispiel fügt „jsmith“ zur Gruppe „Vertriebsgruppe“ hinzu.

Schutz von Organisations-Einheiten in Active Directory mit Get-ADOrganizationalUnit und Set-ADOrganizationalUnit

Eigenschaften von Organisations-Einheiten (OUs) lassen sich mit diesen Cmdlets steuern:

$ou = Get-ADOrganizationalUnit -Filter 'Name -eq "Vertrieb"'Set-ADOrganizationalUnit -Identity $ou -ProtectedFromAccidentalDeletion $true

Die OU „Vertrieb“ wird vor versehentlichem Löschen geschützt.

Kontrolle von Exchange-Berechtigungen durch Get-ADPermission und Add-ADPermission

Mit diesen Cmdlets kann der Zugriff auf Exchange-Postfächer gesteuert werden:

$mailbox = "jsmith@domain.com"Get-ADPermission -Identity $mailbox | Where-Object { $_.IsInherited -eq $false }Add-ADPermission -Identity $mailbox -User "John Doe" -AccessRights FullAccess

Im obigen Code werden spezifische Berechtigungen für das Postfach von „jsmith“ abgerufen, und „John Doe“ erhält Vollzugriff. In einer Exchange-Umgebung kann die Kombination von „Get-ADPermission“ und „Add-ADPermission“ dazu verwendet werden, nicht vererbte Berechtigungen für ein Postfach abzurufen und dann einem anderen Benutzer Zugriffsrechte auf dieses Postfach zu gewähren:

$mailbox = "jdoe@domain.com"Get-ADPermission -Identity $mailbox | Where-Object { $_.IsInherited -eq $false }Add-ADPermission -Identity $mailbox -User "Jane Smith" -AccessRights FullAccess

Cmdlets miteinander kombinieren und Skripte erstellen

Das Kombinieren mehrerer der genannten Cmdlets in einem einzigen Befehl oder Skript kann zu komplexen und maßgeschneiderten Verwaltungsaufgaben führen. Unten ist ein Beispiel für ein PowerShell-Skript, das mehrere dieser Cmdlets nutzt:

# Abfragen von Benutzern aus einer bestimmten OU$users = Get-ADUser -Filter * -SearchBase "OU=Verkauf,DC=domain,DC=com"# Erstellen einer Gruppe für Verkaufsteam$group = New-Object -TypeName "Microsoft.ActiveDirectory.Management.ADGroup" -Property @{ GroupCategory = "Security" GroupScope = "Global" Name = "Verkaufsteam" SamAccountName = "Verkaufsteam"}$group = New-ADGroup @group -Path "OU=Gruppen,DC=domain,DC=com"# Hinzufügen der Verkaufsbenutzer zur Gruppe$users | ForEach-Object { Add-ADGroupMember -Identity $group -Members $_ }# Anwenden von ACLs auf ein Verzeichnis, das für das Verkaufsteam bestimmt ist$acl = Get-Acl -Path C:\VerkaufVerzeichnis$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList "Verkaufsteam", "FullControl", "Allow"$acl.AddAccessRule($accessRule)Set-Acl -Path C:\VerkaufVerzeichnis -AclObject $acl# Änderung der Adresse der Verkauf OU$ou = Get-ADOrganizationalUnit -Filter 'Name -eq "Verkauf"'Set-ADOrganizationalUnit -Identity $ou -StreetAddress "Neue Straße 123"# Hinzufügen von Exchange-Berechtigungen für Verkaufsleiter$mailbox = "verkaufsleiter@domain.com"Get-ADPermission -Identity $mailbox | Where-Object { $_.IsInherited -eq $false }Add-ADPermission -Identity $mailbox -User $group -AccessRights FullAccess

Dieses Skript führt mehrere Verwaltungsaufgaben gleichzeitig aus. Es fragt alle Benutzer aus einer bestimmten OU ab, erstellt eine neue AD-Gruppe für das Verkaufsteam, fügt diese Benutzer zur Gruppe hinzu, legt Berechtigungen für ein Verzeichnis fest, das für das Verkaufsteam bestimmt ist, aktualisiert die Adresse der Verkauf OU und fügt Exchange-Berechtigungen für den Verkaufsleiter hinzu.

Aktuelles eBook

Storage-Security – wie sichern Unternehmen ihre Daten ab?

eBook Storage-Security
eBook „Storage-Security“
(Bild: Storage-Insider)

Sich mit der Sicherheit von Storage-Systemen zu beschäftigen, ist heute notwendiger denn je. Neun von zehn Unternehmen wurden bereits mit Ransomware angegriffen. Einen Überblick über Schutzmaßnahmen und -technologien bietet dieses eBook.

Die Themen im Überblick:

  • Replikation und Verschlüsselung
  • Backup-Verfahren und -Schutz
  • Wiederherstellung
  • Air-Gap
  • Unveränderbare Backups & Disaster Recovery
  • Wirtschaftliche Aspekte

(ID:49670706)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung