diff --git a/Private/New-GPOZaurrReportConsole.ps1 b/Private/New-GPOZaurrReportConsole.ps1 new file mode 100644 index 0000000..bed37f9 --- /dev/null +++ b/Private/New-GPOZaurrReportConsole.ps1 @@ -0,0 +1,52 @@ +function New-GPOZaurrReportConsole { + param( + [System.Collections.IDictionary] $Results + ) + Begin { + $GPODeny = @{ + Color = 'Yellow', 'Red', 'Yellow', 'Red' + StartSpaces = 6 + } + $GPOSuccess = @{ + Color = 'Yellow', 'Green', 'Yellow', 'Green' + StartSpaces = 6 + } + $WriteSummary = @{ + Color = 'Yellow', 'Blue' + StartSpaces = 3 + } + $ComputerWhereApplied = ($Results.ComputerResults.GroupPolicies | Sort-Object -Property DomainName, Name).Where( { $_.Status -eq 'Applied' }, 'split') + $UserWhereApplied = ($Results.UserResults.GroupPolicies | Sort-Object -Property Name).Where( { $_.Status -eq 'Applied' }, 'split') + } + Process { + Write-Color -Text 'Computer Settings' -Color White -LinesBefore 1 + Write-Color -Text '[>] Last time Group Policy was applied: ', $Results.ComputerResults.Summary.ReadTime @WriteSummary + Write-Color -Text '[>] Computer Name: ', $Results.ComputerResults.Summary.ComputerName @WriteSummary + Write-Color -Text '[>] Domain Name: ', $Results.ComputerResults.Summary.DomainName @WriteSummary + Write-Color -Text '[>] Organizational Unit: ', $Results.ComputerResults.Summary.OrganizationalUnit @WriteSummary + Write-Color -Text '[>] Site: ', $Results.ComputerResults.Summary.Site @WriteSummary + Write-Color -Text '[>] GPO Types: ', ($Results.ComputerResults.Summary.GPOTypes -replace [System.Environment]::NewLine, ', ') @WriteSummary + Write-Color -Text '[>] Slow link: ', ($Results.ComputerResults.Summary.SlowLink) @WriteSummary + + Write-Color -Text 'Applied Group Policy Objects' -StartSpaces 3 -LinesBefore 1 + foreach ($GPO in $ComputerWhereApplied[0]) { + Write-Color -Text '[+] [', $GPO.DomainName, '] ', $GPO.Name @GPOSuccess + } + + Write-Color -Text 'Denied Group Policy Objects' -StartSpaces 3 + foreach ($GPO in $ComputerWhereApplied[1]) { + Write-Color -Text '[-] [', $GPO.DomainName, '] ', $GPO.Name @GPODeny + } + + Write-Color -Text 'User Settings' -Color Yellow -LinesBefore 1 + Write-Color -Text 'Applied Group Policy Objects' -StartSpaces 3 + foreach ($GPO in $UserWhereApplied[0] ) { + Write-Color -Text '[+] [', $GPO.DomainName, '] ', $GPO.Name @GPOSuccess + } + + Write-Color -Text 'Denied Group Policy Objects' -StartSpaces 3 + foreach ($GPO in $UserWhereApplied[1]) { + Write-Color -Text '[-] [', $GPO.DomainName, '] ', $GPO.Name @GPODeny + } + } +} \ No newline at end of file diff --git a/Private/New-GPOZaurrReportHTML.ps1 b/Private/New-GPOZaurrReportHTML.ps1 index 84db051..48e99a6 100644 --- a/Private/New-GPOZaurrReportHTML.ps1 +++ b/Private/New-GPOZaurrReportHTML.ps1 @@ -38,18 +38,22 @@ function New-GPOZaurrReportHTML { New-HTMLTable -DataTable $Support.$Key.SecurityGroups -Filtering -PagingOptions @(7, 14) } } + <# New-HTMLSection -HeaderText 'Summary Downloads' { New-HTMLTable -DataTable $Support.$Key.SummaryDownload -HideFooter } + #> New-HTMLSection -HeaderText 'Resultant Set Policy' { New-HTMLTable -DataTable $Support.$Key.ResultantSetPolicy -HideFooter } } New-HTMLTab -Name 'Group Policies' { New-HTMLSection -Invisible { + <# New-HTMLSection -HeaderText 'Processing Time' { New-HTMLTable -DataTable $Support.$Key.ProcessingTime -Filtering } + #> New-HTMLSection -HeaderText 'ExtensionStatus' { New-HTMLTable -DataTable $Support.$Key.ExtensionStatus -Filtering } @@ -60,12 +64,14 @@ function New-GPOZaurrReportHTML { New-HTMLSection -HeaderText 'Group Policies Links' { New-HTMLTable -DataTable $Support.$Key.GroupPoliciesLinks -Filtering } + <# New-HTMLSection -HeaderText 'Group Policies Applied' { New-HTMLTable -DataTable $Support.$Key.GroupPoliciesApplied -Filtering } New-HTMLSection -HeaderText 'Group Policies Denied' { New-HTMLTable -DataTable $Support.$Key.GroupPoliciesDenied -Filtering } + #> } New-HTMLTab -Name 'Extension Data' { New-HTMLSection -HeaderText 'Extension Data' { @@ -77,6 +83,7 @@ function New-GPOZaurrReportHTML { New-HTMLTable -DataTable $Support.$Key.ScopeOfManagement -Filtering } } + <# New-HTMLTab -Name 'Events By ID' { foreach ($ID in $Support.$Key.EventsByID.Keys) { New-HTMLSection -HeaderText "Event ID $ID" { @@ -89,6 +96,42 @@ function New-GPOZaurrReportHTML { New-HTMLTable -DataTable $Support.$Key.Events -Filtering -AllProperties } } + #> + } + } + if ($Support.ComputerResults.Results) { + New-HTMLTab -Name 'Details' { + foreach ($Detail in $Support.ComputerResults.Results.Keys) { + $ShortDetails = $Support.ComputerResults.Results[$Detail] + New-HTMLTab -Name $Detail { + New-HTMLTab -Name 'Test' { + New-HTMLSection -HeaderText 'Summary Downloads' { + New-HTMLTable -DataTable $ShortDetails.SummaryDownload -HideFooter + } + New-HTMLSection -HeaderText 'Processing Time' { + New-HTMLTable -DataTable $ShortDetails.ProcessingTime -Filtering + } + New-HTMLSection -HeaderText 'Group Policies Applied' { + New-HTMLTable -DataTable $ShortDetails.GroupPoliciesApplied -Filtering + } + New-HTMLSection -HeaderText 'Group Policies Denied' { + New-HTMLTable -DataTable $ShortDetails.GroupPoliciesDenied -Filtering + } + } + New-HTMLTab -Name 'Events By ID' { + foreach ($ID in $ShortDetails.EventsByID.Keys) { + New-HTMLSection -HeaderText "Event ID $ID" { + New-HTMLTable -DataTable $ShortDetails.EventsByID[$ID] -Filtering -AllProperties + } + } + } + New-HTMLTab -Name 'Events' { + New-HTMLSection -HeaderText 'Events' { + New-HTMLTable -DataTable $ShortDetails.Events -Filtering -AllProperties + } + } + } + } } } } -Online:(-not $Offline.IsPresent) -Open:$Open.IsPresent -FilePath $Path