diff --git a/Private/New-HTMLReportAll.ps1 b/Private/New-HTMLReportAll.ps1
new file mode 100644
index 0000000..2a8b4f0
--- /dev/null
+++ b/Private/New-HTMLReportAll.ps1
@@ -0,0 +1,50 @@
+function New-HTMLReportAll {
+ [CmdletBinding()]
+ param(
+ [string] $FilePath,
+ [switch] $Online,
+ [switch] $HideHTML,
+ [Array] $Type
+ )
+ # Standard reports as requested
+ Write-Color -Text '[i]', '[HTML ] ', "Generating HTML report ($FilePath)" -Color Yellow, DarkGray, Yellow
+ New-HTML -Author 'Przemysław Kłys @ Evotec' -TitleText 'GPOZaurr Report' {
+ New-HTMLTabStyle -BorderRadius 0px -TextTransform capitalize -BackgroundColorActive SlateGrey
+ New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow
+ New-HTMLPanelStyle -BorderRadius 0px
+ New-HTMLTableOption -DataStore JavaScript -BoolAsString -ArrayJoinString ', ' -ArrayJoin
+
+ New-HTMLHeader {
+ New-HTMLSection -Invisible {
+ New-HTMLSection {
+ New-HTMLText -Text "Report generated on $(Get-Date)" -Color Blue
+ } -JustifyContent flex-start -Invisible
+ New-HTMLSection {
+ New-HTMLText -Text "GPOZaurr - $($Script:Reporting['Version'])" -Color Blue
+ } -JustifyContent flex-end -Invisible
+ }
+ }
+
+ if ($Type.Count -eq 1) {
+ foreach ($T in $Script:GPOConfiguration.Keys) {
+ if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
+ if ($Script:GPOConfiguration[$T]['Summary']) {
+ $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
+ }
+ & $Script:GPOConfiguration[$T]['Solution']
+ }
+ }
+ } else {
+ foreach ($T in $Script:GPOConfiguration.Keys) {
+ if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
+ if ($Script:GPOConfiguration[$T]['Summary']) {
+ $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
+ }
+ New-HTMLTab -Name $Script:GPOConfiguration[$T]['Name'] {
+ & $Script:GPOConfiguration[$T]['Solution']
+ }
+ }
+ }
+ }
+ } -Online:$Online.IsPresent -ShowHTML:(-not $HideHTML) -FilePath $FilePath
+}
\ No newline at end of file
diff --git a/Private/New-HTMLReportWithSplit.ps1 b/Private/New-HTMLReportWithSplit.ps1
new file mode 100644
index 0000000..d7fb78b
--- /dev/null
+++ b/Private/New-HTMLReportWithSplit.ps1
@@ -0,0 +1,61 @@
+function New-HTMLReportWithSplit {
+ [cmdletBinding()]
+ param(
+ [string] $FilePath,
+ [switch] $Online,
+ [switch] $HideHTML,
+ [string] $CurrentReport
+ )
+
+ # Split reports into multiple files for easier viewing
+ $DateName = $(Get-Date -f yyyy-MM-dd_HHmmss)
+ $FileName = [io.path]::GetFileNameWithoutExtension($FilePath)
+ $DirectoryName = [io.path]::GetDirectoryName($FilePath)
+ foreach ($T in $Script:GPOConfiguration.Keys) {
+ $NewFileName = $FileName + '_' + $T + "_" + $DateName + '.html'
+ $FilePath = [io.path]::Combine($DirectoryName, $NewFileName)
+
+ # we execute only if enabled and current report not given which means there's a single report to run
+ # or if current report is given and it matches the current report type which works for split reprots
+ if ($Script:GPOConfiguration[$T].Enabled -eq $true -and ((-not $CurrentReport) -or ($CurrentReport -and $CurrentReport -eq $T))) {
+ Write-Color -Text '[i]', '[HTML ] ', "Generating HTML report ($FilePath) for $T with split reports" -Color Yellow, DarkGray, Yellow
+ New-HTML -Author 'Przemysław Kłys' -TitleText 'GPOZaurr Report' {
+ New-HTMLTabStyle -BorderRadius 0px -TextTransform capitalize -BackgroundColorActive SlateGrey
+ New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow
+ New-HTMLPanelStyle -BorderRadius 0px
+ New-HTMLTableOption -DataStore JavaScript -BoolAsString -ArrayJoinString ', ' -ArrayJoin
+
+ New-HTMLHeader {
+ New-HTMLSection -Invisible {
+ New-HTMLSection {
+ New-HTMLText -Text "Report generated on $(Get-Date)" -Color Blue
+ } -JustifyContent flex-start -Invisible
+ New-HTMLSection {
+ New-HTMLText -Text "GPOZaurr - $($Script:Reporting['Version'])" -Color Blue
+ } -JustifyContent flex-end -Invisible
+ }
+ }
+
+ # if ($Type.Count -eq 1) {
+ # foreach ($T in $Script:GPOConfiguration.Keys) {
+ # if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
+ # if ($Script:GPOConfiguration[$T]['Summary']) {
+ # $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
+ # }
+ # & $Script:GPOConfiguration[$T]['Solution']
+ # }
+ # }
+ # } else {
+
+ if ($Script:GPOConfiguration[$T]['Summary']) {
+ $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
+ }
+ New-HTMLTab -Name $Script:GPOConfiguration[$T]['Name'] {
+ & $Script:GPOConfiguration[$T]['Solution']
+ }
+
+ # }
+ } -Online:$Online.IsPresent -ShowHTML:(-not $HideHTML) -FilePath $FilePath
+ }
+ }
+}
\ No newline at end of file
diff --git a/Public/Invoke-GPOZaurr.ps1 b/Public/Invoke-GPOZaurr.ps1
index cf31435..5ac93e0 100644
--- a/Public/Invoke-GPOZaurr.ps1
+++ b/Public/Invoke-GPOZaurr.ps1
@@ -185,6 +185,10 @@
$TimeEndGPOList = Stop-TimeLog -Time $TimeLogGPOList -Option OneLiner
$Script:Reporting[$T]['Time'] = $TimeEndGPOList
Write-Color -Text '[i]', '[End ] ', $($Script:GPOConfiguration[$T]['Name']), " [Time to execute: $TimeEndGPOList]" -Color Yellow, DarkGray, Yellow, DarkGray
+
+ if ($SplitReports) {
+ New-HTMLReportWithSplit -FilePath $FilePath -Online:$Online -HideHTML:$HideHTML -CurrentReport $T
+ }
}
}
@@ -193,98 +197,10 @@
if (-not $FilePath) {
$FilePath = Get-FileName -Extension 'html' -Temporary
}
- if ($SplitReports -and $Type.Count -gt 1) {
- # Split reports into multiple files for easier viewing
- $DateName = $(Get-Date -f yyyy-MM-dd_HHmmss)
- $FileName = [io.path]::GetFileNameWithoutExtension($FilePath)
- $DirectoryName = [io.path]::GetDirectoryName($FilePath)
- foreach ($T in $Script:GPOConfiguration.Keys) {
- $NewFileName = $FileName + '_' + $T + "_" + $DateName + '.html'
- $FilePath = [io.path]::Combine($DirectoryName, $NewFileName)
-
- if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
- Write-Color -Text '[i]', '[HTML ] ', "Generating HTML report ($FilePath) for $T with split reports" -Color Yellow, DarkGray, Yellow
- New-HTML -Author 'Przemysław Kłys' -TitleText 'GPOZaurr Report' {
- New-HTMLTabStyle -BorderRadius 0px -TextTransform capitalize -BackgroundColorActive SlateGrey
- New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow
- New-HTMLPanelStyle -BorderRadius 0px
- New-HTMLTableOption -DataStore JavaScript -BoolAsString -ArrayJoinString ', ' -ArrayJoin
-
- New-HTMLHeader {
- New-HTMLSection -Invisible {
- New-HTMLSection {
- New-HTMLText -Text "Report generated on $(Get-Date)" -Color Blue
- } -JustifyContent flex-start -Invisible
- New-HTMLSection {
- New-HTMLText -Text "GPOZaurr - $($Script:Reporting['Version'])" -Color Blue
- } -JustifyContent flex-end -Invisible
- }
- }
-
- # if ($Type.Count -eq 1) {
- # foreach ($T in $Script:GPOConfiguration.Keys) {
- # if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
- # if ($Script:GPOConfiguration[$T]['Summary']) {
- # $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
- # }
- # & $Script:GPOConfiguration[$T]['Solution']
- # }
- # }
- # } else {
-
- if ($Script:GPOConfiguration[$T]['Summary']) {
- $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
- }
- New-HTMLTab -Name $Script:GPOConfiguration[$T]['Name'] {
- & $Script:GPOConfiguration[$T]['Solution']
- }
-
- # }
- } -Online:$Online.IsPresent -ShowHTML:(-not $HideHTML) -FilePath $FilePath
- }
- }
+ if ($Type.Count -gt 1 -and -not $SplitReports) {
+ New-HTMLReportWithSplit -FilePath $FilePath -Online:$Online -HideHTML:$HideHTML
} else {
- # Standard reports as requested
- Write-Color -Text '[i]', '[HTML ] ', "Generating HTML report ($FilePath)" -Color Yellow, DarkGray, Yellow
- New-HTML -Author 'Przemysław Kłys' -TitleText 'GPOZaurr Report' {
- New-HTMLTabStyle -BorderRadius 0px -TextTransform capitalize -BackgroundColorActive SlateGrey
- New-HTMLSectionStyle -BorderRadius 0px -HeaderBackGroundColor Grey -RemoveShadow
- New-HTMLPanelStyle -BorderRadius 0px
- New-HTMLTableOption -DataStore JavaScript -BoolAsString -ArrayJoinString ', ' -ArrayJoin
-
- New-HTMLHeader {
- New-HTMLSection -Invisible {
- New-HTMLSection {
- New-HTMLText -Text "Report generated on $(Get-Date)" -Color Blue
- } -JustifyContent flex-start -Invisible
- New-HTMLSection {
- New-HTMLText -Text "GPOZaurr - $($Script:Reporting['Version'])" -Color Blue
- } -JustifyContent flex-end -Invisible
- }
- }
-
- if ($Type.Count -eq 1) {
- foreach ($T in $Script:GPOConfiguration.Keys) {
- if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
- if ($Script:GPOConfiguration[$T]['Summary']) {
- $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
- }
- & $Script:GPOConfiguration[$T]['Solution']
- }
- }
- } else {
- foreach ($T in $Script:GPOConfiguration.Keys) {
- if ($Script:GPOConfiguration[$T].Enabled -eq $true) {
- if ($Script:GPOConfiguration[$T]['Summary']) {
- $Script:Reporting[$T]['Summary'] = Invoke-Command -ScriptBlock $Script:GPOConfiguration[$T]['Summary']
- }
- New-HTMLTab -Name $Script:GPOConfiguration[$T]['Name'] {
- & $Script:GPOConfiguration[$T]['Solution']
- }
- }
- }
- }
- } -Online:$Online.IsPresent -ShowHTML:(-not $HideHTML) -FilePath $FilePath
+ New-HTMLReportAll -FilePath $FilePath -Online:$Online -HideHTML:$HideHTML -Type $Type
}
$TimeLogEndHTML = Stop-TimeLog -Time $TimeLogHTML -Option OneLiner