GPO-Reporting

Startseite – Aktivität Foren Allgemeines GPO-Reporting

This topic contains 0 replies, has 1 voice, and was last updated by  Martin De Roma 3 weeks ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #2274

    Martin De Roma
    Keymaster

    Da ich momentan mit dem Auswerten von Gruppenrichtlinien beschäftigt bin würde ich gerne ein kurzes Powershell-Script teilen welches mir dabei sehr geholfen hat:

    Das Script dient dazu bestimmte werte bezüglich der Gruppenrichtlinien auszulesen und in ein für Excel lesbares format umzuwandeln….

    
    $GPOs = Get-Content -path C:\temp\gpo\GPO_Liste.txt # Liste mit GPO-Namen z.B. U_Dinge oder C_AnderesZeugs ;) 
    
    foreach($gpo in $GPOs){
        # Read Delegations from GPO:
        $arr_Delegation = ([xml](Get-GPOReport -Name $gpo -ReportType Xml)).gpo.SecurityDescriptor.permissions.trusteepermissions.trustee.name.'#text'
        $Delegation = $arr_Delegation -join "," 
        $SecurityFiltering = (Get-GPPermissions -Guid (get-gpo -Name $gpo).id -All |?{$_.Permission -eq "GPOApply"}).trustee.name -join " , "
        $GPOCreatedtime = ([xml](Get-GPOReport -Name $gpo -ReportType Xml)).gpo.createdtime
        $GPOModifiedTime = ([xml](Get-GPOReport -Name $gpo -ReportType Xml)).gpo.ModifiedTime
        $GPOReadTime = ([xml](Get-GPOReport -Name $gpo -ReportType Xml)).gpo.ReadTime
        $GPOLinksTo = ([xml](Get-GPOReport -Name $gpo -ReportType Xml)).gpo.linksto.SOMPath
        
        $myGPOObject = New-Object psobject -Property @{
        GPOName = 'GPOName'
        Delegation = 'Delegation'
        SecurityFiltering = 'SecurityFiltering'
        GPOCreatedtime = 'GPOCreatedtime'
        GPOModifiedTime = 'GPOModifiedTime'
        GPOReadTime = 'GPOReadTime'
        LinksTo = 'LinksTo'
    
        }
        $myGPOObject.GPOName = $gpo
        $myGPOObject.Delegation = $delegation
        $myGPOObject.SecurityFiltering = $SecurityFiltering
        $myGPOObject.GPOCreatedtime = $GPOCreatedtime
        $myGPOObject.GPOModifiedTime = $GPOModifiedTime
        $myGPOObject.GPOReadTime = $GPOReadTime
        $myGPOObject.LinksTo = $GPOLinksTo
        $myGPOObject |export-csv -Path c:\temp\GPOs.csv -Delimiter ";" -Append -NoTypeInformation
    }

    Entgegen dem Export via get-GPOReport kann dieses Script auf alle (oder eine Auswahl von…) GPOs angewedet werden und das Ergeniss ist immer in Excel importierbar.

    Natürlich kann das $myGPOObject belieging erweitert werden wer sich also mit XML und Powershell ein bisschen Auskennt kann theoretisch mit diesem Grundgerüst jede Einstellung aus einer Anzahl von GPOs exportieren.

    Gruß
    Martin

Viewing 1 post (of 1 total)

You must be logged in to reply to this topic.