mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-08-08 09:53:13 +00:00
193 lines
10 KiB
PowerShell
193 lines
10 KiB
PowerShell
function New-GPOZaurrReportHTML {
|
|
[cmdletBinding()]
|
|
param(
|
|
[System.Collections.IDictionary] $Support,
|
|
[string] $Path,
|
|
[switch] $Online,
|
|
[switch] $Open
|
|
)
|
|
$PSDefaultParameterValues = @{
|
|
"New-HTMLTable:WarningAction" = 'SilentlyContinue'
|
|
}
|
|
if (-not $Path) {
|
|
$Path = [io.path]::GetTempFileName().Replace('.tmp', ".html")
|
|
}
|
|
$ComputerName = $($Support.ResultantSetPolicy.LoggingComputer)
|
|
#$UserName = $($Support.ResultantSetPolicy.UserName)
|
|
#$LoggingMode = $($Support.ResultantSetPolicy.LoggingMode)
|
|
New-HTML -TitleText "Group Policy Report - $ComputerName" {
|
|
#New-HTMLTabOptions -SlimTabs -Transition -LinearGradient -SelectorColor Akaroa
|
|
New-HTMLTableOption -DataStore JavaScript -BoolAsString
|
|
New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow
|
|
New-HTMLPanelStyle -BorderRadius 0px
|
|
New-HTMLTabOptions -SlimTabs `
|
|
-BorderBottomStyleActive solid -BorderBottomColorActive LightSkyBlue -BackgroundColorActive none `
|
|
-TextColorActive Black -Align left -BorderRadius 0px -RemoveShadow -TextColor Grey -TextTransform capitalize
|
|
New-HTMLTab -Name 'Information' {
|
|
New-HTMLSection {
|
|
#New-HTMLTable -DataTable $Support.ResultantSetPolicy -HideFooter -Transpose
|
|
New-HTMLSection -HeaderText 'General Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.Time -Filtering -Transpose {
|
|
New-TableHeader -Names 'Name', 'Value' -Title 'Time Information'
|
|
}
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.BIOS -Filtering -Transpose {
|
|
New-TableHeader -Names 'Name', 'Value' -Title 'BIOS Information'
|
|
}
|
|
}
|
|
New-HTMLContainer {
|
|
New-HTMLSection -HeaderText 'CPU Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.CPU -Filtering
|
|
}
|
|
New-HTMLSection -HeaderText 'RAM Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.RAM -Filtering
|
|
}
|
|
}
|
|
}
|
|
New-HTMLSection -HeaderText 'Operating System Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.OperatingSystem -Filtering
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.System -Filtering
|
|
}
|
|
New-HTMLSection -HeaderText 'Disk Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.Disk -Filtering
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.DiskLogical -Filtering
|
|
}
|
|
New-HTMLSection -HeaderText 'Services Information' {
|
|
New-HTMLTable -DataTable $Support.ComputerInformation.Services -Filtering
|
|
}
|
|
}
|
|
foreach ($Key in $Support.Keys) {
|
|
if ($Key -in 'ResultantSetPolicy', 'ComputerInformation') {
|
|
continue
|
|
}
|
|
New-HTMLTab -Name $Key {
|
|
New-HTMLTab -Name 'Summary' {
|
|
New-HTMLSection -Invisible {
|
|
New-HTMLSection -HeaderText 'Summary' {
|
|
New-HTMLTable -DataTable $Support.$Key.Summary -Filtering -PagingOptions @(7, 14 )
|
|
New-HTMLTable -DataTable $Support.$Key.SummaryDetails -Filtering -PagingOptions @(7, 14) -Transpose
|
|
}
|
|
New-HTMLSection -HeaderText 'Part of Security Groups' {
|
|
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-HTMLPanel {
|
|
New-HTMLTable -DataTable $Support.$Key.ExtensionStatus -Filtering
|
|
}
|
|
New-HTMLPanel {
|
|
New-HTMLChart -Title 'Extension TimeLine' -TitleAlignment center {
|
|
foreach ($Extension in $Support.$Key.ExtensionStatus) {
|
|
New-ChartTimeLine -DateFrom ([DateTime] $Extension.BeginTime) -DateTo ([DateTime] $Extension.EndTime) -Name $Extension.Name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
New-HTMLSection -HeaderText 'Group Policies' {
|
|
New-HTMLTable -DataTable $Support.$Key.GroupPolicies -Filtering {
|
|
# Global color applied
|
|
New-TableCondition -Name 'Status' -Value 'Applied' -BackgroundColor BrightGreen -Row
|
|
New-TableCondition -Name 'Status' -Value 'Denied' -BackgroundColor Salmon -Row
|
|
|
|
# One by one colors
|
|
New-TableCondition -Name 'IsValid' -Value $true -BackgroundColor BrightGreen
|
|
New-TableCondition -Name 'IsValid' -Value $false -BackgroundColor Salmon
|
|
|
|
New-TableCondition -Name 'FilterAllowed' -Value $true -BackgroundColor BrightGreen
|
|
New-TableCondition -Name 'FilterAllowed' -Value $false -BackgroundColor Salmon
|
|
|
|
New-TableCondition -Name 'AccessAllowed' -Value $true -BackgroundColor BrightGreen
|
|
New-TableCondition -Name 'AccessAllowed' -Value $false -BackgroundColor Salmon
|
|
}
|
|
}
|
|
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' {
|
|
New-HTMLTable -DataTable $Support.$Key.ExtensionData -Filtering
|
|
}
|
|
}
|
|
New-HTMLTab -Name 'Scope of Management' {
|
|
New-HTMLSection -HeaderText 'Scope of Management' {
|
|
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" {
|
|
New-HTMLTable -DataTable $Support.$Key.EventsByID[$ID] -Filtering -AllProperties
|
|
}
|
|
}
|
|
}
|
|
New-HTMLTab -Name 'Events' {
|
|
New-HTMLSection -HeaderText 'Events' {
|
|
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:$Online.IsPresent -Open:$Open.IsPresent -FilePath $Path
|
|
} |