draki01

Group policy batch

Hallo Zusammen,

ich bin ziemlich neu in der Win administration und komme gerade nicht weiter. Ich muss ein Batch script schreiben, dass die group policy ausliest mit angegebenen Pfaden und die Values in eine txt Datei speichert. Befehle die ich bisher gefunden habe waren secedit und gpresult nur mit diesen komme ich nicht weiter, da ich nicht weiß wo ich die Pfade angeben kann. Ist es überhaupt möglich die GP und secpol mit einem script auszulesen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 3821655847

Url: https://administrator.de/forum/group-policy-batch-3821655847.html

Ausgedruckt am: 18.07.2025 um 06:07 Uhr

chkdsk
chkdsk 02.09.2022 aktualisiert um 13:58:00 Uhr
gpresult /h c:\temp\gpresult_output.html

gpresult /z > c:\temp\gpresult_output.txt
Draki01
Draki01 03.09.2022 aktualisiert um 12:30:04 Uhr
Und wenn ich z.B diesen Pfad auslesen möchte "Account Policies/Password Policy/Enforce password history" würde es dann auch mit gpresult funktionieren. Weil ich eine Liste an bestimmten Pfaden habe die ich auslesen möchte.
jsysde
jsysde 03.09.2022 um 12:54:02 Uhr
Moin.

Wenn ich dich richtig verstehe, möchtest du die GPOs an sich dokumentieren und _nicht!_ deren Auswirkungen auf Clients. Dazu würde ich mir die GPOs auf dem Server "Als Bericht speichern". Das erzeugt eine HTML-Datei, die man dann recht bequem mit PowerShell zerlegen kann. "Als Bericht speichern" ließe sich imho auf dem Server auch per Taskplaner automatisieren.

*Just my 5 Cent*

Cheers,
jsysde
3803037559
3803037559 03.09.2022 aktualisiert um 13:11:37 Uhr
Zitat von @Draki01:

Und wenn ich z.B diesen Pfad auslesen möchte "Account Policies/Password Policy/Enforce password history" würde es dann auch mit gpresult funktionieren. Weil ich eine Liste an bestimmten Pfaden habe die ich auslesen möchte.
Moin.
Lass das Batch rum futteln nimm gleich die Powershell:
$report = "$HOME\Desktop\gpo.xml"  
Get-GPOReport -All -ReportType Xml -Path $report
[xml]$daten = Get-Content $report
$daten.report.gpo
Details kann man sich dann aus den Daten raus ziehen, bspw.
# .....
$daten.report.gpo | ?{$_.Name -eq "Default Domain Policy"} | %{  
    $_.Computer.ExtensionData.Extension.Account | select Name,SettingBoolean,SettingNumber,Type
}
Cheers
certguy
Draki01
Draki01 04.09.2022 um 19:49:10 Uhr
Muss es leider mit Batch machen
3803037559
3803037559 04.09.2022 aktualisiert um 20:00:36 Uhr
Zitat von @Draki01:

Muss es leider mit Batch machen
Wann sind endlich die Schulferien wieder vorbei...🙈 Hausaufgaben bitte selbst erledigen.
Draki01
Draki01 04.09.2022 aktualisiert um 20:04:56 Uhr
Sind keine Hausaufgaben, ich bin einfach neu was das Thema angeht. Man muss nicht jemanden sofort als "Kind" abstempeln nur weil man nicht bisher weiter kommt, mit dem was man gefunden hat. Ich erwarte keine Lösung von euch wollte nur wissen ob es mit secedit, gpresult oder sonst einem anderen Befehl überhaupt funktioniert.
Trotzdem danke für die Vorschläge
Dani
Dani 07.09.2022 um 10:56:54 Uhr
Moin,
Muss es leider mit Batch machen
interessant.... ich bin grundsätzlich sehr neugrierig. Einige sagen das liegt an meinem Namen... Why?

Ich dachte bis eben wie das Ziel erreicht sollte heute keine primäre Rolle mehr spielen. Zumal PowerShell seitens Microsoft de-faco der Standard ist, viele Funktionen wie gpresult abgekündigt sind. Damit verbunden ist mit Boardmitteln die Kreativität für dein Ziel doch sehr eingeschränkt.

Unabhängig bin ich der Meinung das Batch so gut wie tot ist in der Windows Server Administration. PowerShell ist ein muss - sei es für Skripting, Automatisierung oder Konfiguration von Produkten. Das muss sitzen!


Gruß,
Dani
3803037559
3803037559 07.09.2022 aktualisiert um 11:28:11 Uhr
Zitat von @Draki01:

Sind keine Hausaufgaben, ich bin einfach neu was das Thema angeht. Man muss nicht jemanden sofort als "Kind" abstempeln nur weil man nicht bisher weiter kommt, mit dem was man gefunden hat. Ich erwarte keine Lösung von euch wollte nur wissen ob es mit secedit, gpresult oder sonst einem anderen Befehl überhaupt funktioniert.
Trotzdem danke für die Vorschläge
Kann man, das For-Schleifen-Gedöhns muss man aber ehrlich gesagt nicht antun. Die Frage ist dann aber ob du das was ich dir hier post überhaupt verstehen würdest wenn schon Powershell bömische Dörfer für dich sind.
Aber bitte
@echo off &setlocal enabledelayedexpansion
set "found="  
for /f "delims=" %%a in ('gpresult /scope computer /z') do (  
    if defined found for /f "tokens=2 delims=:" %%b in ("%%a") do (echo PasswordComplexity:%%b & goto :out)	  
    echo %%a|findstr /ic:"PasswordComplexity" >nul 2>&1 && (set found=1)  
)
:out
Nur ein Beispiel für eine Art Wert aus den GPO Settings, andere Werte benötigen Anpassung da Zeilenanzahl zwischen Name und Wert variiert.
Viel Spaß beim zerpflücken ...

Zitat von @Dani:
Unabhängig bin ich der Meinung das Batch so gut wie tot ist in der Windows Server Administration. PowerShell ist ein muss - sei es für Skripting, Automatisierung oder Konfiguration von Produkten. Das muss sitzen!
FULL Ackn! Gerade wenn man neu in der Administration ist, dann ist das absolutes Pflichtprogramm im MS Universum.

Wenn man dich zwingt Batch zu verwenden, was bist du dann? Azubi? Wenn ja OK ist gut wenn man Basis Batch Wissen mitbringt, OK, richtig Relevant ist das aber heute in dem Bereich GPO ehrlich gesagt nicht mehr. Darauf würde ich deinen Ausbilder auch hinweisen, wenn der aber nur will das du Batch besser kennenlernst, dann stütze dich nicht auf Foren sondern lerne erst mal die Basics dann kommt der Rest auch von alleine.