diff --git a/Examples/Example-29-FindGPO4.ps1 b/Examples/Example-29-FindGPO4.ps1 index 28585ab..d7a0ab0 100644 --- a/Examples/Example-29-FindGPO4.ps1 +++ b/Examples/Example-29-FindGPO4.ps1 @@ -1,4 +1,4 @@ Import-Module "$PSScriptRoot\..\GPoZaurr.psd1" -Force -$Output = Invoke-GPOZaurr -Verbose #-SingleObject +$Output = Invoke-GPOZaurr -Verbose -OutputType HTML, Object -Open $Output | Format-Table \ No newline at end of file diff --git a/Examples/Example-29-FindGPO0.ps1 b/Examples/Example-29-FindGPO5.ps1 similarity index 94% rename from Examples/Example-29-FindGPO0.ps1 rename to Examples/Example-29-FindGPO5.ps1 index 55faac0..13bbb5c 100644 --- a/Examples/Example-29-FindGPO0.ps1 +++ b/Examples/Example-29-FindGPO5.ps1 @@ -1,9 +1,10 @@ Import-Module "$PSScriptRoot\..\GPoZaurr.psd1" -Force # Asses GPO based on exported data -$Output = Invoke-GPOZaurr -GPOPath $Env:USERPROFILE\Desktop\GPOExport_2020.10.12 -Verbose +$Output = Invoke-GPOZaurr -GPOPath $Env:USERPROFILE\Desktop\GPOExport_2020.10.12 -Verbose -Type RegistrySetting $Output | Format-Table * + # Export to Excel foreach ($Key in $Output.Keys) { $Output[$Key] | ConvertTo-Excel -FilePath $Env:USERPROFILE\Desktop\EFGPOAnalysis.xlsx -ExcelWorkSheetName $Key -AutoFilter -AutoFit -FreezeTopRowFirstColumn diff --git a/Public/Invoke-GPOZaurr.ps1 b/Public/Invoke-GPOZaurr.ps1 index 43aaa91..6b3e68b 100644 --- a/Public/Invoke-GPOZaurr.ps1 +++ b/Public/Invoke-GPOZaurr.ps1 @@ -189,7 +189,6 @@ $FindReport = $ReportType.Report Write-Verbose "Invoke-GPOZaurr - Processing reports based on other report $Report ($FindReport)" foreach ($GPO in $TemporaryCachedSingleReports['ReportsSingle'][$FindReport]) { - Write-Verbose "Invoke-GPOZaurr - Processing $Report" $TranslatedGpo = Invoke-Command -ScriptBlock $Script:GPODitionary[$Report]['CodeReport'] foreach ($T in $TranslatedGpo) { $Output['Reports'][$Report].Add($T) diff --git a/Public/Show-GPOZaurr.ps1 b/Public/Show-GPOZaurr.ps1 index 4093df2..bcb8b0b 100644 --- a/Public/Show-GPOZaurr.ps1 +++ b/Public/Show-GPOZaurr.ps1 @@ -4,15 +4,27 @@ [string] $FilePath ) - $GPOContent = Invoke-GPOZaurr + Write-Verbose -Message "Show-GPOZaurr - Processing GPO List" $GPOSummary = Get-GPOZaurr + + Write-Verbose -Message "Show-GPOZaurr - Processing GPO Sysvol" $GPOOrphans = Get-GPOZaurrSysvol + + Write-Verbose -Message "Show-GPOZaurr - Processing GPO Permissions" $GPOPermissions = Get-GPOZaurrPermission -Type All -IncludePermissionType GpoEditDeleteModifySecurity, GpoEdit, GpoCustom -IncludeOwner + + Write-Verbose -Message "Show-GPOZaurr - Processing GPO Permissions Consistency" $GPOPermissionsConsistency = Get-GPOZaurrPermissionConsistency -Type All -VerifyInheritance + + Write-Verbose -Message "Show-GPOZaurr - Processing GPO Permissions Root" $GPOPermissionsRoot = Get-GPOZaurrPermissionRoot + Write-Verbose "Show-GPOZaurr - Processing GPO Owners" $GPOOwners = Get-GPOZaurrOwner -IncludeSysvol + Write-Verbose "Show-GPOZaurr - Processing GPO Analysis" + $GPOContent = Invoke-GPOZaurr + $GPOLinked = $GPOSummary.Where( { $_.Linked -eq $true }, 'split') $GPOEmpty = $GPOSummary.Where( { $_.Empty -eq $true, 'split' }) $GPOTotal = $GPOSummary.Count @@ -23,6 +35,7 @@ [Array] $Inconsistent = $GPOPermissionsConsistency.Where( { $_.ACLConsistent -eq $true } , 'split' ) [Array] $InconsistentInside = $GPOPermissionsConsistency.Where( { $_.ACLConsistentInside -eq $true }, 'split' ) + Write-Verbose "Show-GPOZaurr - Generating HTML" New-HTML { New-HTMLTabStyle -BorderRadius 0px -TextTransform capitalize -BackgroundColorActive SlateGrey New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow @@ -31,7 +44,7 @@ New-HTMLSection -Invisible { New-HTMLPanel { New-HTMLChart -Title 'Group Policies Summary' { - New-ChartLegend -Names 'Unlinked', 'Linked', 'Empty', 'Total' -Color FireEngineRed, MediumSpringGreen, RedRobin, BlueDiamond + New-ChartLegend -Names 'Unlinked', 'Linked', 'Empty', 'Total' -Color Salmon, PaleGreen, PaleVioletRed, PaleTurquoise New-ChartBar -Name 'Group Policies' -Value $GPOLinked[1].Count, $GPOLinked[0].Count, $GPOEmpty[1].Count, $GPOTotal #New-ChartBar -Name 'Linked' -Value $GPOLinked[0].Count @@ -54,7 +67,7 @@ "It's also important that owner in Active Directory matches owner on SYSVOL (file system)." New-HTMLChart { New-ChartBarOptions -Type barStacked - New-ChartLegend -Name 'Yes', 'No' -Color Green, Red + New-ChartLegend -Name 'Yes', 'No' -Color PaleGreen, Orchid New-ChartBar -Name 'Is administrative' -Value $IsOwnerAdministrative[0].Count, $IsOwnerAdministrative[1].Count New-ChartBar -Name 'Is consistent' -Value $IsOwnerConsistent[0].Count, $IsOwnerConsistent[1].Count } -Title 'Group Policy Owners' @@ -66,8 +79,8 @@ } New-HTMLTab -Name 'Group Policies Summary' { New-HTMLTable -DataTable $GPOSummary -Filtering { - New-HTMLTableCondition -Name 'Empty' -Value $false -BackgroundColor RedOxide -TextTransform capitalize -ComparisonType bool - New-HTMLTableCondition -Name 'Linked' -Value $false -BackgroundColor RedOxide -TextTransform capitalize -ComparisonType bool + New-HTMLTableCondition -Name 'Empty' -Value $false -BackgroundColor Salmon -TextTransform capitalize -ComparisonType bool + New-HTMLTableCondition -Name 'Linked' -Value $false -BackgroundColor Salmon -TextTransform capitalize -ComparisonType bool } } New-HTMLTab -Name 'Sysvol' {