Top 10 Group Policy PowerShell-Befehle
Apr 11, 2019
Neben der Group Policy Management Console (GPMC) bietet Microsoft einen Satz von Windows PowerShell-Cmdlets, die Sie zur Verwaltung von Group Policy verwenden können. Um die PowerShell-Cmdlets für Group Policy zu verwenden, müssen Sie GPMC auf dem Gerät installiert haben, auf dem Sie die Cmdlets ausführen werden. Um zu überprüfen, ob das Group Policy PowerShell-Modul auf einem Gerät installiert ist, führen Sie den untenstehenden Befehl aus, der alle verfügbaren Group Policy-Cmdlets anzeigt, falls das Modul installiert ist.
Get-Command -Module GroupPolicy
Ausgewählte verwandte Inhalte:
Erstellen eines neuen Gruppenrichtlinienobjekts
Beginnen wir damit, ein neues Gruppenrichtlinienobjekt (GPO) zu erstellen. Der folgende Befehl erstellt ein neues GPO namens 'Netwrix PCs' und fügt einen Kommentar hinzu, um seinen Zweck zu beschreiben:
New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"
Der Befehl erstellt eine leere GPO ohne Einstellungen. Wenn Sie Starter-GPOs in Ihrer Active Directory-Domäne konfiguriert haben, können Sie eine neue GPO basierend auf deren Einstellungen erstellen. Der folgende Befehl erstellt eine neue GPO namens ‘Netwrix PCs’ basierend auf der ‘Windows 10 MS Security Settings’ GPO:
New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"
Sie können optional die GPO mit einer Domäne, Organisationseinheit (OU) des Domänencontrollers oder einer Site mithilfe von Piping verknüpfen. Der folgende Befehl erstellt eine neue GPO und verknüpft sie mit der OU Clients in der Domäne ad.contoso.com:
New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Um ein GPO zu entkoppeln, verwenden Sie das Remove-GPLink Cmdlet:
Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Abbildung 1. Wie man ein GPO verknüpft und die Verknüpfung aufhebt
Ausgewählte verwandte Inhalte:
Informationen zu einem GPO erhalten
Sobald ein GPO erstellt wurde, können Sie Get-GPO verwenden, um Informationen wie GPO-Status, Erstellungszeit und letzte Änderungszeit zurückzugeben:
Get-GPO -Name "Netwrix PCs"
Wenn Sie mehr Informationen wünschen, leiten Sie das durch Get-GPO erstellte Objekt an Get-GPOReport weiter. Das untenstehende Skript erstellt einen HTML-Bericht, der Informationen über die GPO ähnlich denen liefert, die Sie in der Group Policy Management-Konsole sehen würden:
Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html
Abbildung 2. HTML-Bericht mit detaillierten Daten über eine spezifische GPO
Konfigurieren von Gruppenrichtlinieneinstellungen
Wenn Sie den Speicherort für eine registry-basierte Group Policy setting kennen, können Sie das Cmdlet Set-GPRegistryValue verwenden, um es zu konfigurieren. Registry-basierte Group Policy-Einstellungen sind jene, die unter Administrative Vorlagen in der GPMC erscheinen. Set-GPRegistryValue kann auch verwendet werden, um Registrierungswerte zu setzen, die nicht von Group Policy-Einstellungen abgedeckt sind. Zum Beispiel, wenn Sie Registrierungseinstellungen für Drittanbieteranwendungen konfigurieren möchten, die keine ADMX-Datei für Group Policy haben, ist Set-GPRegistryValue eine schnelle Möglichkeit, die benötigten Einstellungen zu konfigurieren. Der folgende Befehl setzt ein Bildschirmschoner-Zeitlimit von 300 Sekunden für den angemeldeten Benutzer:
Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300
Sie können entweder Computerkonfigurations- oder Benutzerkonfigurationseinstellungen mit Set-GPRegistryValue festlegen. Der Registrierungspfad im -Key Parameter unten beginnt mit „HKCU“ (steht für „HKEY_CURRENT_USER“). Wenn Sie stattdessen eine Computereinstellung konfigurieren möchten, ersetzen Sie „HKCU“ durch „HKLM“ (steht für HKEY_LOCAL_MACHINE).
Um detaillierte Informationen über einen in einer GPO konfigurierten Registrierungsschlüssel zu erhalten, verwenden Sie Get-GPRegistryValue:
Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"
Abbildung 3. Wie man detaillierte Informationen über einen in einer GPO konfigurierten Registrierungsschlüssel erhält
Um eine Registrierungseinstellung von einer GPO zu entfernen, verwenden Sie Remove-GPRegistryValue:
Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut
Die drei oben genannten Cmdlets haben Group Policy Preference-Entsprechungen, falls Sie sich entscheiden, Preferences anstelle von Policies zu verwenden, um Registrierungsschlüssel zu setzen: Set-GPPrefRegistryValue, Get-GPPrefRegistryValue, und Remove-GPPrefRegistryValue.
Anwenden von Gruppenrichtlinieneinstellungen
Vorausgesetzt, dass Ihre GPO mit einer Domäne, OU oder Site verknüpft ist, wird sie auf Benutzer- und Computerobjekte unterhalb der Verknüpfung angewendet. Wenn Sie jedoch ein Group Policy update auf einem entfernten Server oder einem anderen Gerät erzwingen möchten, können Sie Invoke-GPUpdate verwenden. Wenn Sie Invoke-GPUpdate ohne Parameter ausführen, wird ein Update der Benutzer- und Computerkonfigurationseinstellungen auf dem lokalen Computer erzwungen. Der folgende Befehl erzwingt ein Group Policy Update auf server1 nur für Benutzerkonfigurationseinstellungen:
Invoke-GPUpdate -Computer "adserver1" -Target "User"
Überprüfung, welche GPOs auf einen Benutzer oder Computer angewendet werden
Um Informationen darüber zu erhalten, welche Gruppenrichtlinienobjekte (GPOs) auf einen Benutzer oder Computer angewendet werden, können Sie einen Resultant Set of Policy (RSoP)-Bericht mit dem Cmdlet Get-GPResultantSetOfPolicy erstellen. Der folgende Befehl generiert einen Bericht für den Computer namens „dc1“ und schreibt die Ergebnisse in das Verzeichnis c:temp:
Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html
Abbildung 4. Wie man Informationen darüber erhält, welche GPOs auf einen Benutzer oder Computer angewendet werden
PowerShell-Cmdlets können für die Verwaltung von Gruppenrichtlinien sehr nützlich sein. Allerdings ist das Konfigurieren von Einstellungen in GPOs mit PowerShell nicht einfach, da Gruppenrichtlinieneinstellungen nicht für textbasierte Konfigurationen konzipiert wurden.
Teilen auf
Erfahren Sie mehr
Über den Autor
Russell Smith
IT-Berater
IT-Berater und Autor, der sich auf Management- und Sicherheitstechnologien spezialisiert hat. Russell verfügt über mehr als 15 Jahre Erfahrung in der IT, er hat ein Buch über Windows-Sicherheit geschrieben und er hat einen Text für die Official Academic Course (MOAC) Serie von Microsoft mitverfasst.
Erfahren Sie mehr zu diesem Thema
Erstellen Sie AD-Benutzer in Massen und senden Sie deren Anmeldeinformationen per E-Mail mit PowerShell
Wie man Passwörter mit PowerShell erstellt, ändert und testet
So fügen Sie AD-Gruppen hinzu und entfernen Objekte in Gruppen mit PowerShell
Vertrauensstellungen in Active Directory
Ransomware-Angriffe auf Active Directory