Blog

Hier poste ich dinge zu Themen die mich beschäftigten.

Neueste 5 Einträge

  • PHP: sende Mail
  • Powershell: gruppename like finden und aktivierte user zaehlen
  • HW und SW auslesen und exportieren
  • Angeschlossene Monitore auslesen
  • bash: deepL Pro Paket MAC OS

2023-04-18

Powershell - GPO check

ersetzen Sie die Beispiel-GPOs in der $recommendedGPOs-Variablen durch die tatsächlichen BSI-Empfehlungen für Windows Server 2021. Führen Sie das Skript aus, um die fehlenden oder falschen Einstellungen zu identifizieren und die Ergebnisse in ein Logfile zu schreiben.

$logfile = “BSI-GPO-Check_$(Get-Date -Format ‘yyyyMMdd_HHmm’).log”

$recommendedGPOs = @{
    # Beispiel: Ersetzen Sie diese Einträge durch die tatsächlichen BSI-Empfehlungen für Windows Server 2021
    “Computer ConfigurationAdministrative TemplatesSystemRemote Procedure CallRestrict Unauthenticated RPC clients” = “Enabled”;
    “Computer ConfigurationAdministrative TemplatesWindows ComponentsEvent Log ServiceApplicationSpecify the maximum log file size (KB)” = 196608;
}

function CheckGPOSetting {
    param (
        [string]$path,
        [string]$expectedValue
    )

    $gpoValue = Get-ItemProperty -Path $path -Name “SettingValue” -ErrorAction SilentlyContinue
    if ($gpoValue -eq $null -or $gpoValue.SettingValue -ne $expectedValue) {
        $logEntry = “Fehlende oder falsche Einstellung: $path - Erwartet: $expectedValue”
        Add-Content -Path $logfile -Value $logEntry
        return $false
    }
    return $true
}

foreach ($gpo in $recommendedGPOs.Keys) {
    CheckGPOSetting -path $gpo -expectedValue $recommendedGPOs[$gpo]
}

Admin - 14:22:46 @ Projekte, Powershell-Skripte | Kommentar hinzufügen