Zum Inhalt springen
12 · SicherheitsbaselinesTeil 2 von 4Fortgeschritten

Policy Analyzer und LGPO: Baselines vergleichen, anwenden

Mit Policy Analyzer GPOs, Baselines und effektive Richtlinie vergleichen und mit LGPO.exe lokale Richtlinien auf Einzelrechnern und Labor-Builds testen, anwenden, exportieren.

Florian Amette7 Min. Lesezeit

Der Grundlagenartikel zu Sicherheitsbaselines stellt das Microsoft Security Compliance Toolkit und seine beiden Hilfsprogramme vor. Dieser Leitfaden zeigt ihren Einsatz im Alltag: Policy Analyzer beantwortet „Was ist anders, und wo?“, LGPO.exe wendet lokale Richtlinien an, exportiert und untersucht sie. Zusammen sind sie der schnellste Weg, eine Baseline auf einem Rechner zu testen, bevor sie in ein GPO wandert, und einem Prüfer nachzuweisen, was ein Rechner tatsächlich ausführt.

Beide Werkzeuge sind kostenlos auf der Seite des Security Compliance Toolkit im Microsoft Download Center erhältlich und laufen unter Windows 11 sowie Windows Server 2016 und neuer. Laden Sie gleichzeitig die aktuellen Baseline-Pakete herunter; jedes enthält GPO-Sicherungen, Dokumentationstabellen und einen Ordner Scripts, der LGPO.exe in Scripts\Tools erwartet.

Was jedes Werkzeug liest und schreibt

Policy AnalyzerLGPO.exe
ZweckRichtliniensätze und effektiven Zustand vergleichenLokale Gruppenrichtlinien importieren, exportieren und parsen
EingabenGPO-Sicherungen, registry.pol, Sicherheitsvorlagen (GptTmpl.inf), audit.csv der erweiterten ÜberwachungDasselbe, dazu LGPO-Textdateien und .PolicyRules
AusgabeRasteransicht, Excel-Export, .PolicyRules-DateienLokale Richtlinie auf dem Rechner, GPO-Sicherungen, Text-Dumps
Adminrechte nötigNur zum Erfassen des effektiven ZustandsJa, zum Anwenden

Schritt 1: Regelsätze in Policy Analyzer aufbauen

Starten Sie PolicyAnalyzer.exe und klicken Sie auf Add. Mit dem Policy File Importer fügen Sie einzelne Dateien oder einen ganzen GPO-Sicherungsordner hinzu (File > Add files from GPO(s)) und speichern die Kombination dann als benannten .PolicyRules-Satz. Bauen Sie mindestens drei:

  1. Baseline: die Microsoft-Baseline-GPOs für Ihr Betriebssystem und Ihre Rolle, zum Beispiel die Computer- und Benutzer-GPOs für Windows 11 24H2, dazu die Baselines für Edge und Microsoft 365 Apps.
  2. Current: eine Sicherung jedes GPOs, das auf die Ziel-OU wirkt. Exportieren Sie sie mit Backup-GPO oder alle auf einmal:
PowerShell
New-Item -ItemType Directory C:\GPOBackup\Workstations -Force | Out-Null
(Get-GPInheritance -Target 'OU=Workstations,DC=corp,DC=example').InheritedGpoLinks |
  ForEach-Object { Backup-GPO -Guid $_.GpoId -Path C:\GPOBackup\Workstations }
  1. Previous baseline: die zuletzt verteilte Version, um sie mit einem neuen Release zu vergleichen.

Legen Sie die .PolicyRules-Dateien neben Ihrem Abweichungsregister in der Versionsverwaltung ab. Es sind kleine XML-Dateien und hervorragende Nachweise.

Schritt 2: vergleichen und das Raster lesen

Wählen Sie zwei oder mehr Regelsätze aus und klicken Sie auf View / Compare. Jede Zeile ist eine Einstellung, jede Spalte zeigt ihren Wert in einem Satz. Filtern Sie die Ansicht mit Show only differences oder Show only conflicts:

  • Ein Konflikt ist dieselbe Einstellung mit unterschiedlichen Werten in zwei Sätzen. Zwischen Baseline und Current ist jeder Konflikt entweder eine zu schließende Lücke oder eine zu dokumentierende Abweichung.
  • Eine Einstellung, die in Current vorhanden ist, in der Baseline aber fehlt, ist nicht zwingend falsch: Microsoft-Baselines lassen Einstellungen weg, deren Standard bereits sicher ist. Prüfen Sie aber alle, die einen Standard schwächen, etwa das erneute Aktivieren von SMBv1, LM-Hashes oder WDigest (siehe Zwischengespeicherte Anmeldungen und WDigest).
  • Dieselbe Einstellung in mehreren Ihrer GPOs, selbst mit gleichem Wert, ist ein Wartungsrisiko. Konsolidieren Sie.

Teilen Sie das Ergebnis mit Export > Export table to Excel. Vergleichen Sie bei einem neuen Baseline-Release Previous und New: Der Unterschied ist Ihre Änderungsliste, und sie ist kürzer als die kompletten Versionshinweise.

Schritt 3: mit dem effektiven Zustand vergleichen

Der nützlichste Modus für Audits: Führen Sie Policy Analyzer als Administrator auf dem Zielrechner aus, wählen Sie den Satz Baseline und aktivieren Sie Compare to Effective State. Policy Analyzer liest die aktuellen Richtlinienwerte der Registrierung, die Sicherheitseinstellungen und die Überwachungsrichtlinie des Rechners und fügt sie als Spalte hinzu.

Das fängt auf, was GPO-Reviews übersehen:

  • Durch Skripte, Installer oder lokale Administratoren geänderte Einstellungen.
  • GPOs, die wegen WMI-Filtern, Sicherheitsfilterung oder eines Computers in der falschen OU nicht greifen.
  • Per MDM gelieferte Werte, die im effektiven Zustand erscheinen, obwohl kein GPO sie setzt.

Speichern Sie den effektiven Zustand als eigenen .PolicyRules-Satz mit Rechnername und Datum. Zwei Momentaufnahmen desselben Rechners im Abstand eines Monats sind eine schnelle Driftprüfung; der Leitfaden zu Konfigurationsdrift beschreibt, wie Sie das automatisieren.

Schritt 4: eine Baseline lokal mit LGPO anwenden

Wenden Sie auf einer Labor-VM, einem eigenständigen Server oder einem Referenz-Image die Baseline-GPO-Sicherungen direkt auf die lokale Richtlinie an:

PowerShell
# Jede GPO-Sicherung unterhalb des Ordners anwenden
.\LGPO.exe /g "C:\SCT\Windows 11 v24H2 Security Baseline\GPOs"

# Oder einzelne Komponenten anwenden
.\LGPO.exe /m C:\Policy\machine-registry.pol     # registry.pol für den Computer
.\LGPO.exe /u C:\Policy\user-registry.pol        # registry.pol für den Benutzer
.\LGPO.exe /s C:\Policy\GptTmpl.inf              # Sicherheitsvorlage
.\LGPO.exe /a C:\Policy\audit.csv                # erweiterte Überwachungsrichtlinie
.\LGPO.exe /p C:\Policy\Baseline.PolicyRules     # ein Regelsatz aus Policy Analyzer

Die Baseline-Pakete enthalten im Ordner Scripts außerdem Baseline-LocalInstall.ps1, das die richtige GPO-Kombination mit LGPO anwendet und Schalter für domänengebundene und nicht domänengebundene Rechner bietet. Führen Sie Get-Help .\Baseline-LocalInstall.ps1 -Detailed aus, um die Optionen Ihrer Paketversion zu sehen; die Option für nicht domänengebundene Rechner überspringt Einstellungen, die die Remoteverwaltung eines eigenständigen Rechners blockieren würden.

Starten Sie nach dem Anwenden neu, da mehrere Sicherheitseinstellungen (zum Beispiel LSA- und Anmeldedaten-Einstellungen) erst beim Start wirksam werden.

Schritt 5: lokale Richtlinien als Text exportieren und bearbeiten

LGPO kann die lokale Richtlinie als GPO-Sicherung exportieren, die Sie dann in ein Domänen-GPO oder in Policy Analyzer importieren können:

PowerShell
.\LGPO.exe /b C:\Export /n "Lab build - local policy"

Um eine registry.pol zu lesen oder zu bearbeiten, parsen Sie sie in das Textformat von LGPO, bearbeiten sie und wenden die Textdatei an:

PowerShell
.\LGPO.exe /parse /m C:\Windows\System32\GroupPolicy\Machine\Registry.pol > C:\Temp\machine.txt
.\LGPO.exe /t C:\Temp\machine.txt

Das Textformat besteht aus vier Zeilen pro Einstellung (Konfiguration, Schlüssel, Wertname, Typ und Daten), getrennt durch eine Leerzeile:

Text
Computer
Software\Policies\Microsoft\Windows NT\DNSClient
EnableMulticast
DWORD:0

Verwenden Sie DELETE statt eines Typs, um einen Wert zu entfernen. So lässt sich auch bequem eine kleine lokale Richtlinie für einen Jump-Host oder einen Kiosk ohne Domäne erstellen und in der Versionsverwaltung pflegen.

Schritt 6: Ihre Abweichungen für die Domäne schichten

Sobald eine Baseline lokal getestet ist, übertragen Sie sie in zwei Schichten in die Domäne: die unverändert importierten Baseline-GPOs und ein separates GPO mit höherer Priorität, das nur Ihre Abweichungen enthält. Bauen Sie dieses Abweichungs-GPO bewusst auf:

  1. Vergleichen Sie in Policy Analyzer den Satz Baseline mit dem effektiven Zustand eines getesteten Pilotrechners, auf dem Sie Ihre Ausnahmen angewendet haben.
  2. Die Unterschiede sind genau Ihre Abweichungen. Gleichen Sie jede mit dem Abweichungsregister ab; alles Undokumentierte ist entweder ein Versehen oder eine nicht dokumentierte Entscheidung.
  3. Erstellen Sie das Abweichungs-GPO nur mit diesen Einstellungen, sichern Sie es und fügen Sie die Sicherung als eigenen Regelsatz hinzu, damit künftige Vergleiche Baseline, Abweichungen und effektiven Zustand nebeneinander zeigen.

Bei einem Jump-Host oder eigenständigen Server gehen Sie mit LGPO genauso vor: die Baseline mit /g anwenden, dann Ihre Abweichungen mit /t aus einer Textdatei in der Versionsverwaltung. Ein Neuaufbau des Rechners reproduziert dann exakt dieselbe lokale Richtlinie.

Überprüfung

Bestätigen Sie nach dem Anwenden, was der Rechner tatsächlich verarbeitet:

PowerShell
gpresult /scope computer /h C:\Temp\gpresult.html
auditpol /get /category:* | Out-File C:\Temp\auditpol.txt
secedit /export /cfg C:\Temp\secpol.inf /areas SECURITYPOLICY USER_RIGHTS

Führen Sie dann Policy Analyzer erneut mit Compare to Effective State gegen den Satz Baseline aus. Die einzigen verbleibenden Unterschiede sollten die aus Ihrem Abweichungsregister sein. Fehler bei der Gruppenrichtlinienverarbeitung erscheinen im System-Log unter Microsoft-Windows-GroupPolicy (Ereignis 1085 ist eine fehlgeschlagene clientseitige Erweiterung, 1129 und 1054 deuten meist auf Netzwerk- oder DC-Konnektivität hin) und im Detail unter Applications and Services Logs > Microsoft > Windows > GroupPolicy > Operational.

Was kaputtgeht

  • Domänen-GPOs überschreiben LGPO. Die lokale Richtlinie wird zuerst verarbeitet, daher gewinnt alles, was ein Domänen-GPO setzt. Testen Sie domänenbezogene Einstellungen stattdessen in einem GPO, das mit einer Labor-OU verknüpft ist.
  • Tattooing. Einstellungen, die außerhalb der Registrierungsschlüssel Policies geschrieben werden (zum Beispiel einige MSS-Legacy-Werte und Einstellungen aus Sicherheitsvorlagen), bleiben auf dem Rechner, wenn Sie die Richtlinie entfernen. Zum Zurücksetzen müssen Sie den alten Wert explizit setzen, statt die Richtlinie zu löschen.
  • Sich von einem eigenständigen Server aussperren. Die Baseline für domänengebundene Rechner verweigert lokalen Konten die Netzwerkanmeldung. Auf einem Arbeitsgruppenrechner ist das Ihr einziger Zugang; verwenden Sie die Option für nicht domänengebundene Rechner.
  • Ignorierte Überwachungsrichtlinie. Erweiterte Überwachungseinstellungen haben nur Vorrang vor den Legacy-Kategorien, wenn Audit: Force audit policy subcategory settings to override audit policy category settings aktiviert ist, was die Microsoft-Baseline tut. Prüfen Sie das, wenn die Überwachung nicht stimmt (siehe Überwachungsrichtlinie und Sysmon).

Checkliste

  • Aktuelles SCT, Policy Analyzer, LGPO und Baseline-Pakete heruntergeladen
  • .PolicyRules-Sätze für Baseline, aktuelle GPOs und vorherige Baseline in der Versionsverwaltung
  • Konflikte zwischen aktuellen GPOs und Baseline behoben oder dokumentiert
  • Effektiver Zustand von Stichprobenrechnern mit der Baseline verglichen
  • Baseline vor dem GPO-Rollout lokal mit LGPO auf einem Laborrechner getestet
  • Eigenständige Server mit der Baseline-Option für nicht domänengebundene Rechner konfiguriert
  • Lokale Richtlinie von Spezialhosts exportiert und versioniert
  • Neue Baseline-Releases mit der Vorversion verglichen

Policy Analyzer und LGPO machen Baselines testbar und nachweisbar. Für die mit Intune verwaltete Seite desselben Problems siehe Intune-Sicherheitsbaselines, und stöbern Sie im gesamten Bereich Sicherheitsbaselines.

Häufige Fragen

Funktioniert LGPO auf domänengebundenen Rechnern?

Es schreibt die lokale Gruppenrichtlinie, die zuerst verarbeitet und von jedem Domänen-GPO überschrieben wird, das dieselbe Einstellung setzt. Damit ist LGPO ideal für eigenständige Server, Labortests und Images, aber ein schlechter Weg, Domänenmitglieder zu verwalten: Die Domäne gewinnt, und lokal gesetzte Einstellungen können bei der nächsten Aktualisierung stillschweigend ersetzt werden.

Wo speichert Policy Analyzer seine Daten?

Jeder importierte Satz wird als .PolicyRules-Datei gespeichert, ein XML-Dokument mit registrierungsbasierten Einstellungen, Sicherheitsvorlagen und Einstellungen der erweiterten Überwachung. Standardmäßig liegen sie in einem Ordner PolicyAnalyzer unter Ihren Dokumenten. Sie können diese Dateien in der Versionsverwaltung ablegen, mit Prüfern teilen und LGPO mit der Option /p übergeben.

Kann Policy Analyzer Intune-Richtlinien vergleichen?

Nicht direkt. Es versteht GPO-Sicherungen, registry.pol-Dateien, Sicherheitsvorlagen und Audit-CSVs. Vergleichen Sie für Intune stattdessen den effektiven Zustand des Geräts, da per MDM gelieferte Einstellungen in der effektiven Richtlinie erscheinen, oder nutzen Sie Group Policy analytics in Intune, um zu sehen, wie Ihre GPOs auf MDM-Einstellungen abgebildet werden.

Policy Analyzer und LGPO: Baselines vergleichen, anwenden

Verwandte Leitfäden

Anwendungssteuerung

AppLocker-Rollout: Skripte, Installer und App-Pakete

AppLocker sicher ausrollen: Dienst Anwendungsidentität, Überwachungsmodus, Herausgeberregeln für EXE, Skripte, MSI und App-Pakete sowie Lücken in beschreibbaren Ordnern.

Fortgeschritten