This commit is contained in:
Przemyslaw Klys
2020-11-06 13:28:57 +01:00
parent d27760931e
commit 2331e449b1
16 changed files with 185 additions and 164 deletions
+2 -2
View File
@@ -16,9 +16,9 @@
}
Solution = {
foreach ($Key in $GPOZaurrAnalysis['Data'].Keys) {
foreach ($Key in $Script:GPOConfiguration['GPOAnalysis']['Data'].Keys) {
New-HTMLTab -Name $Key {
New-HTMLTable -DataTable $GPOZaurrAnalysis['Data'][$Key] -Filtering -Title $Key
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOAnalysis']['Data'][$Key] -Filtering -Title $Key
}
}
}
@@ -0,0 +1,21 @@
$GPOZaurrBlockedInheritance = [ordered] @{
Name = 'Group Policy Blocked Inhertiance'
Enabled = $true
Action = $null
Data = $null
Execute = {
Get-GPOZaurrInheritance -IncludeBlockedObjects -OnlyBlockedInheritance
}
Processing = {
}
Variables = @{
}
Overview = {
}
Solution = {
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOBlockedInheritance']['Data'] -Filtering
}
}
+22 -22
View File
@@ -5,22 +5,22 @@
Data = $null
Execute = { Get-GPOZaurrPermissionConsistency -Type All -VerifyInheritance }
Processing = {
foreach ($GPO in $GPOZaurrConsistency['Data']) {
foreach ($GPO in $Script:GPOConfiguration['GPOConsistency']['Data']) {
if ($GPO.ACLConsistent -eq $true) {
$GPOZaurrConsistency['Variables']['Consistent']++
$Script:GPOConfiguration['GPOConsistency']['Variables']['Consistent']++
} else {
$GPOZaurrConsistency['Variables']['Inconsistent']++
$Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent']++
}
if ($GPO.ACLConsistentInside -eq $true) {
$GPOZaurrConsistency['Variables']['ConsistentInside']++
$Script:GPOConfiguration['GPOConsistency']['Variables']['ConsistentInside']++
} else {
$GPOZaurrConsistency['Variables']['InconsistentInside']++
$Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside']++
}
}
if ($GPOZaurrConsistency['Variables']['Inconsistent'].Count -gt 0 -or $GPOZaurrConsistency['Variables']['InconsistentInside'].Count -gt 0 ) {
$GPOZaurrConsistency['Action'] = $true
if ($Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent'].Count -gt 0 -or $Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside'].Count -gt 0 ) {
$Script:GPOConfiguration['GPOConsistency']['Action'] = $true
} else {
$GPOZaurrConsistency['Action'] = $false
$Script:GPOConfiguration['GPOConsistency']['Action'] = $false
}
}
Variables = @{
@@ -33,18 +33,18 @@
New-HTMLPanel {
New-HTMLText -Text 'Following chart presents ', 'permissions consistency between Active Directory and SYSVOL for Group Policies' -FontSize 10pt -FontWeight normal, bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Top level permissions consistency: ', $GPOZaurrConsistency['Variables']['Consistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inherited permissions consistency: ', $GPOZaurrConsistency['Variables']['ConsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inconsistent top level permissions: ', $GPOZaurrConsistency['Variables']['Inconsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Inconsistent inherited permissions: ", $GPOZaurrConsistency['Variables']['InconsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Top level permissions consistency: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['Consistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inherited permissions consistency: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['ConsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inconsistent top level permissions: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Inconsistent inherited permissions: ", $Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLText -FontSize 10pt -Text 'Having incosistent permissions on AD in comparison to those on SYSVOL can lead to uncontrolled ability to modify them.'
New-HTMLChart {
New-ChartLegend -Names 'Bad', 'Good' -Color PaleGreen, Salmon
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Consistent', 'Inconsistent'
New-ChartBar -Name 'TopLevel' -Value $GPOZaurrConsistency['Variables']['Consistent'], $GPOZaurrConsistency['Variables']['Inconsistent']
New-ChartBar -Name 'Inherited' -Value $GPOZaurrConsistency['Variables']['ConsistentInside'], $GPOZaurrConsistency['Variables']['InconsistentInside']
New-ChartBar -Name 'TopLevel' -Value $Script:GPOConfiguration['GPOConsistency']['Variables']['Consistent'], $Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent']
New-ChartBar -Name 'Inherited' -Value $Script:GPOConfiguration['GPOConsistency']['Variables']['ConsistentInside'], $Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside']
} -Title 'Permissions Consistency' -TitleAlignment center
}
}
@@ -58,10 +58,10 @@
}
New-HTMLText -Text 'Following list presents ', 'permissions consistency between Active Directory and SYSVOL for Group Policies' -FontSize 10pt -FontWeight normal, bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Top level permissions consistency: ', $GPOZaurrConsistency['Variables']['Consistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inherited permissions consistency: ', $GPOZaurrConsistency['Variables']['ConsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inconsistent top level permissions: ', $GPOZaurrConsistency['Variables']['Inconsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Inconsistent inherited permissions: ", $GPOZaurrConsistency['Variables']['InconsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Top level permissions consistency: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['Consistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inherited permissions consistency: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['ConsistentInside'] -FontWeight normal, bold
New-HTMLListItem -Text 'Inconsistent top level permissions: ', $Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Inconsistent inherited permissions: ", $Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLText -FontSize 10pt -Text 'Having incosistent permissions on AD in comparison to those on SYSVOL can lead to uncontrolled ability to modify them. Please notice that if ', `
' Not available ', 'is visible in the table you should first fix related, more pressing issue, before fixing permissions inconsistency.' -FontWeight normal, bold, normal
@@ -69,20 +69,20 @@
Solution = {
New-HTMLSection -Invisible {
New-HTMLPanel {
& $GPOZaurrConsistency['Summary']
& $Script:GPOConfiguration['GPOConsistency']['Summary']
}
New-HTMLPanel {
New-HTMLChart {
New-ChartLegend -Names 'Bad', 'Good' -Color PaleGreen, Salmon
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Consistent', 'Inconsistent'
New-ChartBar -Name 'TopLevel' -Value $GPOZaurrConsistency['Variables']['Consistent'], $GPOZaurrConsistency['Variables']['Inconsistent']
New-ChartBar -Name 'Inherited' -Value $GPOZaurrConsistency['Variables']['ConsistentInside'], $GPOZaurrConsistency['Variables']['InconsistentInside']
New-ChartBar -Name 'TopLevel' -Value $Script:GPOConfiguration['GPOConsistency']['Variables']['Consistent'], $Script:GPOConfiguration['GPOConsistency']['Variables']['Inconsistent']
New-ChartBar -Name 'Inherited' -Value $Script:GPOConfiguration['GPOConsistency']['Variables']['ConsistentInside'], $Script:GPOConfiguration['GPOConsistency']['Variables']['InconsistentInside']
} -Title 'Permissions Consistency' -TitleAlignment center
}
}
New-HTMLSection -Name 'Group Policy Permissions Consistency' {
New-HTMLTable -DataTable $GPOZaurrConsistency['Data'] -Filtering {
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOConsistency']['Data'] -Filtering {
New-HTMLTableCondition -Name 'ACLConsistent' -Value $false -BackgroundColor Salmon -TextTransform capitalize -ComparisonType string
New-HTMLTableCondition -Name 'ACLConsistentInside' -Value $false -BackgroundColor Salmon -TextTransform capitalize -ComparisonType string
New-HTMLTableCondition -Name 'ACLConsistent' -Value $true -BackgroundColor PaleGreen -TextTransform capitalize -ComparisonType string
+1 -1
View File
@@ -16,6 +16,6 @@
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrDuplicates['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['GPODuplicates']['Data'] -Filtering
}
}
+1 -1
View File
@@ -16,6 +16,6 @@
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrFiles['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOFiles']['Data'] -Filtering
}
}
+43 -43
View File
@@ -7,40 +7,40 @@
Get-GPOZaurr
}
Processing = {
foreach ($GPO in $GPOZaurrList['Data']) {
foreach ($GPO in $Script:GPOConfiguration['GPOList']['Data']) {
if ($GPO.Linked -eq $false -and $GPO.Empty -eq $true) {
# Not linked, Empty
$GPOZaurrList['Variables']['GPOEmptyAndUnlinked']++
$GPOZaurrList['Variables']['GPOEmptyOrUnlinked']++
$GPOZaurrList['Variables']['GPONotLinked']++
$GPOZaurrList['Variables']['GPOEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyAndUnlinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty']++
} elseif ($GPO.Linked -eq $true -and $GPO.Empty -eq $true) {
# Linked, But EMPTY
$GPOZaurrList['Variables']['GPOLinkedButEmpty']++
$GPOZaurrList['Variables']['GPOEmptyOrUnlinked']++
$GPOZaurrList['Variables']['GPOEmpty']++
$GPOZaurrList['Variables']['GPOLinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOLinked']++
} elseif ($GPO.Linked -eq $false) {
# Not linked, but not EMPTY
$GPOZaurrList['Variables']['GPONotLinked']++
$GPOZaurrList['Variables']['GPOEmptyOrUnlinked']++
$GPOZaurrList['Variables']['GPONotEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPONotEmpty']++
} elseif ($GPO.Empty -eq $true) {
# Linked, But EMPTY
$GPOZaurrList['Variables']['GPOEmpty']++
$GPOZaurrList['Variables']['GPOEmptyOrUnlinked']++
$GPOZaurrList['Variables']['GPOLinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOLinked']++
} else {
# Linked, not EMPTY
$GPOZaurrList['Variables']['GPOValid']++
$GPOZaurrList['Variables']['GPOLinked']++
$GPOZaurrList['Variables']['GPONotEmpty']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOValid']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOLinked']++
$Script:GPOConfiguration['GPOList']['Variables']['GPONotEmpty']++
}
if ($GPO.LinksDisabledCount -eq $GPO.LinksCount -and $GPO.LinksCount -gt 0) {
$GPOZaurrList['Variables']['GPOLinkedButLinkDisabled']++
$Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButLinkDisabled']++
}
}
$GPOZaurrList['Variables']['GPOTotal'] = $GPOZaurrList['Data'].Count
$Script:GPOConfiguration['GPOList']['Variables']['GPOTotal'] = $Script:GPOConfiguration['GPOList']['Data'].Count
}
Variables = @{
GPONotLinked = 0
@@ -58,14 +58,14 @@
New-HTMLPanel {
New-HTMLText -Text 'Following chart presents ', 'Linked / Empty and Unlinked Group Policies' -FontSize 10pt -FontWeight normal, bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies total: ', $GPOZaurrList['Variables']['GPOTotal'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies valid: ", $GPOZaurrList['Variables']['GPOValid'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies to delete: ", $GPOZaurrList['Variables']['GPOEmptyOrUnlinked'] -FontWeight normal, bold {
New-HTMLListItem -Text 'Group Policies total: ', $Script:GPOConfiguration['GPOList']['Variables']['GPOTotal'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies valid: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOValid'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies to delete: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked'] -FontWeight normal, bold {
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies that are unlinked (are not doing anything currently): ', $GPOZaurrList['Variables']['GPONotLinked'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are empty (have no settings): ", $GPOZaurrList['Variables']['GPOEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but empty: ", $GPOZaurrList['Variables']['GPOLinkedButEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but link disabled: ", $GPOZaurrList['Variables']['GPOLinkedButLinkDisabled'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies that are unlinked (are not doing anything currently): ', $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are empty (have no settings): ", $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but empty: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but link disabled: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButLinkDisabled'] -FontWeight normal, bold
}
}
} -FontSize 10pt
@@ -74,10 +74,10 @@
New-ChartBarOptions -Type barStacked
#New-ChartLegend -Names 'Unlinked', 'Linked', 'Empty', 'Total' -Color Salmon, PaleGreen, PaleVioletRed, PaleTurquoise
New-ChartLegend -Names 'Good', 'Bad' -Color PaleGreen, Salmon
#New-ChartBar -Name 'Group Policies' -Value $GPOZaurrList['Variables']['GPONotLinked'], $GPOZaurrList['Variables']['GPOLinked'], $GPOZaurrList['Variables']['GPOEmpty'], $GPOZaurrList['Variables']['GPOTotal']
New-ChartBar -Name 'Linked' -Value $GPOZaurrList['Variables']['GPOLinked'], $GPOZaurrList['Variables']['GPONotLinked']
New-ChartBar -Name 'Empty' -Value $GPOZaurrList['Variables']['GPONotEmpty'], $GPOZaurrList['Variables']['GPOEmpty']
New-ChartBar -Name 'Valid' -Value $GPOZaurrList['Variables']['GPOValid'], $GPOZaurrList['Variables']['GPOEmptyOrUnlinked']
#New-ChartBar -Name 'Group Policies' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPOLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty'], $Script:GPOConfiguration['GPOList']['Variables']['GPOTotal']
New-ChartBar -Name 'Linked' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPOLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked']
New-ChartBar -Name 'Empty' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPONotEmpty'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty']
New-ChartBar -Name 'Valid' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPOValid'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']
} -TitleAlignment center
}
}
@@ -94,14 +94,14 @@
}
New-HTMLText @newHTMLTextSplat
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies total: ', $GPOZaurrList['Variables']['GPOTotal'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies valid: ", $GPOZaurrList['Variables']['GPOValid'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies to delete: ", $GPOZaurrList['Variables']['GPOEmptyOrUnlinked'] -FontWeight normal, bold {
New-HTMLListItem -Text 'Group Policies total: ', $Script:GPOConfiguration['GPOList']['Variables']['GPOTotal'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies valid: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOValid'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies to delete: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked'] -FontWeight normal, bold {
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies that are unlinked (are not doing anything currently): ', $GPOZaurrList['Variables']['GPONotLinked'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are empty (have no settings): ", $GPOZaurrList['Variables']['GPOEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but empty: ", $GPOZaurrList['Variables']['GPOLinkedButEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but link disabled: ", $GPOZaurrList['Variables']['GPOLinkedButLinkDisabled'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies that are unlinked (are not doing anything currently): ', $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are empty (have no settings): ", $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but empty: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButEmpty'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies that are linked, but link disabled: ", $Script:GPOConfiguration['GPOList']['Variables']['GPOLinkedButLinkDisabled'] -FontWeight normal, bold
}
}
} -FontSize 10pt
@@ -112,15 +112,15 @@
New-ChartBarOptions -Type barStacked
#New-ChartLegend -Names 'Unlinked', 'Linked', 'Empty', 'Total' -Color Salmon, PaleGreen, PaleVioletRed, PaleTurquoise
New-ChartLegend -Names 'Good', 'Bad' -Color PaleGreen, Salmon
#New-ChartBar -Name 'Group Policies' -Value $GPOZaurrList['Variables']['GPONotLinked'], $GPOZaurrList['Variables']['GPOLinked'], $GPOZaurrList['Variables']['GPOEmpty'], $GPOZaurrList['Variables']['GPOTotal']
New-ChartBar -Name 'Linked' -Value $GPOZaurrList['Variables']['GPOLinked'], $GPOZaurrList['Variables']['GPONotLinked']
New-ChartBar -Name 'Empty' -Value $GPOZaurrList['Variables']['GPONotEmpty'], $GPOZaurrList['Variables']['GPOEmpty']
New-ChartBar -Name 'Valid' -Value $GPOZaurrList['Variables']['GPOValid'], $GPOZaurrList['Variables']['GPOEmptyOrUnlinked']
#New-ChartBar -Name 'Group Policies' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPOLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty'], $Script:GPOConfiguration['GPOList']['Variables']['GPOTotal']
New-ChartBar -Name 'Linked' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPOLinked'], $Script:GPOConfiguration['GPOList']['Variables']['GPONotLinked']
New-ChartBar -Name 'Empty' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPONotEmpty'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmpty']
New-ChartBar -Name 'Valid' -Value $Script:GPOConfiguration['GPOList']['Variables']['GPOValid'], $Script:GPOConfiguration['GPOList']['Variables']['GPOEmptyOrUnlinked']
} -TitleAlignment center
}
}
New-HTMLSection -Name 'Group Policies List' {
New-HTMLTable -DataTable $GPOZaurrList['Data'] -Filtering {
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOList']['Data'] -Filtering {
New-HTMLTableCondition -Name 'Empty' -Value $true -BackgroundColor Salmon -TextTransform capitalize -ComparisonType string
New-HTMLTableCondition -Name 'Linked' -Value $false -BackgroundColor Salmon -TextTransform capitalize -ComparisonType string
} -PagingOptions 10, 20, 30, 40, 50
+30 -30
View File
@@ -7,33 +7,33 @@
Get-GPOZaurrNetLogon
}
Processing = {
foreach ($File in $GPOZaurrNetLogonPermissions['Data']) {
foreach ($File in $Script:GPOConfiguration['NetLogonPermissions']['Data']) {
if ($File.FileSystemRights -eq 'Owner') {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwners']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwners']++
if ($File.PrincipalType -eq 'WellKnownAdministrative') {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrative']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrative']++
} elseif ($File.PrincipalType -eq 'Administrative') {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrative']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrative']++
} else {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersNotAdministrative']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersNotAdministrative']++
}
if ($File.PrincipalSid -eq 'S-1-5-32-544') {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrators']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrators']++
} elseif ($File.PrincipalType -in 'WellKnownAdministrative', 'Administrative') {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrativeNotAdministrators']++
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrativeNotAdministrators']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix']++
} else {
$GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix']++
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix']++
}
$GPOZaurrNetLogonPermissions['Variables']['Owner'].Add($File)
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['Owner'].Add($File)
} else {
$GPOZaurrNetLogonPermissions['Variables']['NonOwner'].Add($File)
$Script:GPOConfiguration['NetLogonPermissions']['Variables']['NonOwner'].Add($File)
}
}
if ($GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix'].Count -gt 0) {
$GPOZaurrNetLogonPermissions['Action'] = $true
if ($Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix'].Count -gt 0) {
$Script:GPOConfiguration['NetLogonPermissions']['Action'] = $true
} else {
$GPOZaurrNetLogonPermissions['Action'] = $false
$Script:GPOConfiguration['NetLogonPermissions']['Action'] = $false
}
}
Variables = @{
@@ -50,19 +50,19 @@
New-HTMLPanel {
New-HTMLText -Text 'Following chart presents ', 'NetLogon Summary' -FontSize 10pt -FontWeight normal, bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'NetLogon Files in Total: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwners'] -FontWeight normal, bold
New-HTMLListItem -Text 'NetLogon BUILTIN\Administrators as Owner: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text "NetLogon Owners requiring change: ", $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix'] -FontWeight normal, bold {
New-HTMLListItem -Text 'NetLogon Files in Total: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwners'] -FontWeight normal, bold
New-HTMLListItem -Text 'NetLogon BUILTIN\Administrators as Owner: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text "NetLogon Owners requiring change: ", $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix'] -FontWeight normal, bold {
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Not Administrative: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative, but not BUILTIN\Administrators: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrativeNotAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text 'Not Administrative: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative, but not BUILTIN\Administrators: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrativeNotAdministrators'] -FontWeight normal, bold
}
}
} -FontSize 10pt
#New-HTMLText -FontSize 10pt -Text 'Those problems must be resolved before doing other clenaup activities.'
New-HTMLChart {
New-ChartPie -Name 'Correct Owners' -Value $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrators'] -Color LightGreen
New-ChartPie -Name 'Incorrect Owners' -Value $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix'] -Color Crimson
New-ChartPie -Name 'Correct Owners' -Value $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrators'] -Color LightGreen
New-ChartPie -Name 'Incorrect Owners' -Value $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix'] -Color Crimson
} -Title 'NetLogon Owners' -TitleAlignment center
}
New-HTMLPanel {
@@ -79,12 +79,12 @@
"That's why as a best-practice it's recommended to change any non-administrative owners to BUILTIN\Administrators, and even Administrative accounts should be replaced with it. "
} -FontSize 10pt
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'NetLogon Files in Total: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwners'] -FontWeight normal, bold
New-HTMLListItem -Text 'NetLogon BUILTIN\Administrators as Owner: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text "NetLogon Owners requiring change: ", $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix'] -FontWeight normal, bold {
New-HTMLListItem -Text 'NetLogon Files in Total: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwners'] -FontWeight normal, bold
New-HTMLListItem -Text 'NetLogon BUILTIN\Administrators as Owner: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text "NetLogon Owners requiring change: ", $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix'] -FontWeight normal, bold {
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Not Administrative: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative, but not BUILTIN\Administrators: ', $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrativeNotAdministrators'] -FontWeight normal, bold
New-HTMLListItem -Text 'Not Administrative: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative, but not BUILTIN\Administrators: ', $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrativeNotAdministrators'] -FontWeight normal, bold
}
}
} -FontSize 10pt
@@ -92,13 +92,13 @@
}
New-HTMLPanel {
New-HTMLChart {
New-ChartPie -Name 'Correct Owners' -Value $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersAdministrators'] -Color LightGreen
New-ChartPie -Name 'Incorrect Owners' -Value $GPOZaurrNetLogonPermissions['Variables']['NetLogonOwnersToFix'] -Color Crimson
New-ChartPie -Name 'Correct Owners' -Value $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersAdministrators'] -Color LightGreen
New-ChartPie -Name 'Incorrect Owners' -Value $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NetLogonOwnersToFix'] -Color Crimson
} -Title 'NetLogon Owners' -TitleAlignment center
}
}
New-HTMLSection -Name 'NetLogon Files List' {
New-HTMLTable -DataTable $GPOZaurrNetLogonPermissions['Variables']['Owner'] -Filtering {
New-HTMLTable -DataTable $Script:GPOConfiguration['NetLogonPermissions']['Variables']['Owner'] -Filtering {
New-HTMLTableCondition -Name 'PrincipalSid' -Value "S-1-5-32-544" -BackgroundColor LightGreen -ComparisonType string
New-HTMLTableCondition -Name 'PrincipalSid' -Value "S-1-5-32-544" -BackgroundColor Salmon -ComparisonType string -Operator ne
New-HTMLTableCondition -Name 'PrincipalType' -Value "WellKnownAdministrative" -BackgroundColor LightGreen -ComparisonType string -Operator eq
@@ -167,7 +167,7 @@
}
New-HTMLTab -Name 'NetLogon Permissions' {
New-HTMLSection -Name 'NetLogon Files List' {
New-HTMLTable -DataTable $GPOZaurrNetLogonPermissions['Variables']['NonOwner'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['NetLogonPermissions']['Variables']['NonOwner'] -Filtering
}
}
}
+14 -14
View File
@@ -10,16 +10,16 @@
#$NotAvailableInAD = [System.Collections.Generic.List[PSCustomObject]]::new()
#$NotAvailableOnSysvol = [System.Collections.Generic.List[PSCustomObject]]::new()
#$NotAvailablePermissionIssue = [System.Collections.Generic.List[PSCustomObject]]::new()
foreach ($GPO in $GPOZaurrOrphans['Data']) {
foreach ($GPO in $Script:GPOConfiguration['GPOOrphans']['Data']) {
if ($GPO.Status -eq 'Not available in AD') {
#$NotAvailableInAD.Add($NotAvailableInAD)
$GPOZaurrOrphans['Variables']['NotAvailableInAD']++
$Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableInAD']++
} elseif ($GPO.Status -eq 'Not available on SYSVOL') {
#$NotAvailableOnSysvol.Add($NotAvailableInAD)
$GPOZaurrOrphans['Variables']['NotAvailableOnSysvol']++
$Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableOnSysvol']++
} elseif ($GPO.Status -eq 'Permissions issue') {
#$NotAvailablePermissionIssue.Add($NotAvailableInAD)
$GPOZaurrOrphans['Variables']['NotAvailablePermissionIssue']++
$Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailablePermissionIssue']++
}
}
}
@@ -42,15 +42,15 @@
}
New-HTMLText -Text 'Following chart presents ', 'Broken / Orphaned Group Policies' -FontSize 10pt -FontWeight normal, bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies on SYSVOL, but no details in AD: ', $GPOZaurrOrphans['Variables']['NotAvailableInAD'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies in AD, but no content on SYSVOL: ', $GPOZaurrOrphans['Variables']['NotAvailableOnSysvol'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which couldn't be assed due to permissions issue: ", $GPOZaurrOrphans['Variables']['NotAvailablePermissionIssue'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies on SYSVOL, but no details in AD: ', $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableInAD'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies in AD, but no content on SYSVOL: ', $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableOnSysvol'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which couldn't be assed due to permissions issue: ", $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailablePermissionIssue'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLText -FontSize 10pt -Text 'Those problems must be resolved before doing other clenaup activities.'
New-HTMLChart {
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Not in AD', 'Not on SYSVOL', 'Permissions Issue' -Color Crimson, LightCoral, IndianRed
New-ChartBar -Name 'Orphans' -Value $GPOZaurrOrphans['Variables']['NotAvailableInAD'], $GPOZaurrOrphans['Variables']['NotAvailableOnSysvol'], $GPOZaurrOrphans['Variables']['NotAvailablePermissionIssue']
New-ChartBar -Name 'Orphans' -Value $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableInAD'], $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableOnSysvol'], $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailablePermissionIssue']
} -Title 'Broken / Orphaned Group Policies' -TitleAlignment center
}
}
@@ -69,26 +69,26 @@
} -FontSize 10pt
New-HTMLText -Text 'Following problems were detected:' -FontSize 10pt -FontWeight bold
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies on SYSVOL, but no details in AD: ', $GPOZaurrOrphans['Variables']['NotAvailableInAD'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies in AD, but no content on SYSVOL: ', $GPOZaurrOrphans['Variables']['NotAvailableOnSysvol'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which couldn't be assed due to permissions issue: ", $GPOZaurrOrphans['Variables']['NotAvailablePermissionIssue'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies on SYSVOL, but no details in AD: ', $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableInAD'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies in AD, but no content on SYSVOL: ', $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableOnSysvol'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which couldn't be assed due to permissions issue: ", $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailablePermissionIssue'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLText -Text "Please review output in table and follow the steps below table to get Active Directory Group Policies in healthy state." -FontSize 10pt
}
}
Solution = {
New-HTMLSection -Invisible {
& $GPOZaurrOrphans['Summary']
& $Script:GPOConfiguration['GPOOrphans']['Summary']
New-HTMLPanel {
New-HTMLChart {
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Not in AD', 'Not on SYSVOL', 'Permissions Issue' -Color Crimson, LightCoral, IndianRed
New-ChartBar -Name 'Orphans' -Value $GPOZaurrOrphans['Variables']['NotAvailableInAD'], $GPOZaurrOrphans['Variables']['NotAvailableOnSysvol'], $GPOZaurrOrphans['Variables']['NotAvailablePermissionIssue']
New-ChartBar -Name 'Orphans' -Value $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableInAD'], $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailableOnSysvol'], $Script:GPOConfiguration['GPOOrphans']['Variables']['NotAvailablePermissionIssue']
} -Title 'Broken / Orphaned Group Policies' -TitleAlignment center
}
}
New-HTMLSection -Name 'Health State of Group Policies' {
New-HTMLTable -DataTable $GPOZaurrOrphans['Data'] -Filtering {
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOOrphans']['Data'] -Filtering {
New-HTMLTableCondition -Name 'Status' -Value "Not available in AD" -BackgroundColor Salmon -ComparisonType string
New-HTMLTableCondition -Name 'Status' -Value "Not available on SYSVOL" -BackgroundColor LightCoral -ComparisonType string
New-HTMLTableCondition -Name 'Status' -Value "Permissions issue" -BackgroundColor MediumVioletRed -ComparisonType string -Color White
+30 -30
View File
@@ -1,36 +1,36 @@
$GPOZaurrOwners = [PSCustomObject] @{
$GPOZaurrOwners = [ordered] @{
Name = 'Group Policy Owners'
Enabled = $true
Action = $null
Data = $null
Execute = { Get-GPOZaurrOwner -IncludeSysvol }
Processing = {
foreach ($GPO in $GpoZaurrOwners['Data']) {
foreach ($GPO in $Script:GPOConfiguration['GPOOwners']['Data']) {
if ($GPO.IsOwnerConsistent) {
$GpoZaurrOwners['Variables']['IsConsistent']++
$Script:GPOConfiguration['GPOOwners']['Variables']['IsConsistent']++
} else {
$GpoZaurrOwners['Variables']['IsNotConsistent']++
$Script:GPOConfiguration['GPOOwners']['Variables']['IsNotConsistent']++
}
if ($GPO.IsOwnerAdministrative) {
$GpoZaurrOwners['Variables']['IsAdministrative']++
$Script:GPOConfiguration['GPOOwners']['Variables']['IsAdministrative']++
} else {
$GpoZaurrOwners['Variables']['IsNotAdministrative']++
$Script:GPOConfiguration['GPOOwners']['Variables']['IsNotAdministrative']++
}
if (($GPO.IsOwnerAdministrative -eq $false -or $GPO.IsOwnerConsistent -eq $false) -and $GPO.SysvolExists -eq $true) {
$GpoZaurrOwners['Variables']['WillFix']++
$Script:GPOConfiguration['GPOOwners']['Variables']['WillFix']++
} elseif ($GPO.SysvolExists -eq $false) {
$GpoZaurrOwners['Variables']['RequiresDiffFix']++
$Script:GPOConfiguration['GPOOwners']['Variables']['RequiresDiffFix']++
} else {
$GpoZaurrOwners['Variables']['WillNotTouch']++
$Script:GPOConfiguration['GPOOwners']['Variables']['WillNotTouch']++
}
}
if ($GpoZaurrOwners['Variables']['WillFix'].Count -gt 0) {
$GpoZaurrOwners['Action'] = $true
if ($Script:GPOConfiguration['GPOOwners']['Variables']['WillFix'].Count -gt 0) {
$Script:GPOConfiguration['GPOOwners']['Action'] = $true
} else {
$GpoZaurrOwners['Action'] = $false
$Script:GPOConfiguration['GPOOwners']['Action'] = $false
}
}
Variables = @{
Variables = @{
IsAdministrative = 0
IsNotAdministrative = 0
IsConsistent = 0
@@ -44,16 +44,16 @@
New-HTMLText -Text 'Following chart presents Group Policy owners and whether they are administrative and consistent. By design an owner of Group Policy should be Domain Admins or Enterprise Admins group only to prevent malicious takeover. ', `
"It's also important that owner in Active Directory matches owner on SYSVOL (file system)." -FontSize 10pt
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Administrative Owners: ', $GpoZaurrOwners['Variables']['IsAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Non-Administrative Owners: ', $GpoZaurrOwners['Variables']['IsNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners consistent in AD and SYSVOL: ", $GpoZaurrOwners['Variables']['IsConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners not-consistent in AD and SYSVOL: ", $GpoZaurrOwners['Variables']['IsNotConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative Owners: ', $Script:GPOConfiguration['GPOOwners']['Variables']['IsAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Non-Administrative Owners: ', $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners consistent in AD and SYSVOL: ", $Script:GPOConfiguration['GPOOwners']['Variables']['IsConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners not-consistent in AD and SYSVOL: ", $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotConsistent'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLChart {
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Yes', 'No' -Color PaleGreen, Orchid
New-ChartBar -Name 'Is administrative' -Value $GpoZaurrOwners['Variables']['IsAdministrative'], $GpoZaurrOwners['Variables']['IsNotAdministrative']
New-ChartBar -Name 'Is consistent' -Value $GpoZaurrOwners['Variables']['IsConsistent'], $GpoZaurrOwners['Variables']['IsNotConsistent']
New-ChartBar -Name 'Is administrative' -Value $Script:GPOConfiguration['GPOOwners']['Variables']['IsAdministrative'], $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotAdministrative']
New-ChartBar -Name 'Is consistent' -Value $Script:GPOConfiguration['GPOOwners']['Variables']['IsConsistent'], $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotConsistent']
} -Title 'Group Policy Owners' -TitleAlignment center
}
}
@@ -72,34 +72,34 @@
}
New-HTMLText -Text "Here's a short summary of ", "Group Policy Owners", ": " -FontSize 10pt -FontWeight normal, bold, normal
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Administrative Owners: ', $GpoZaurrOwners['Variables']['IsAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Non-Administrative Owners: ', $GpoZaurrOwners['Variables']['IsNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners consistent in AD and SYSVOL: ", $GpoZaurrOwners['Variables']['IsConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners not-consistent in AD and SYSVOL: ", $GpoZaurrOwners['Variables']['IsNotConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text 'Administrative Owners: ', $Script:GPOConfiguration['GPOOwners']['Variables']['IsAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text 'Non-Administrative Owners: ', $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotAdministrative'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners consistent in AD and SYSVOL: ", $Script:GPOConfiguration['GPOOwners']['Variables']['IsConsistent'] -FontWeight normal, bold
New-HTMLListItem -Text "Owners not-consistent in AD and SYSVOL: ", $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotConsistent'] -FontWeight normal, bold
} -FontSize 10pt
New-HTMLText -FontSize 10pt -Text "This gives us: "
New-HTMLList -Type Unordered {
New-HTMLListItem -Text 'Group Policies requiring owner change: ', $GpoZaurrOwners['Variables']['WillFix'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which can't be fixed (no SYSVOL?): ", $GpoZaurrOwners['Variables']['RequiresDiffFix'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies unaffected: ", $GpoZaurrOwners['Variables']['WillNotTouch'] -FontWeight normal, bold
New-HTMLListItem -Text 'Group Policies requiring owner change: ', $Script:GPOConfiguration['GPOOwners']['Variables']['WillFix'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies which can't be fixed (no SYSVOL?): ", $Script:GPOConfiguration['GPOOwners']['Variables']['RequiresDiffFix'] -FontWeight normal, bold
New-HTMLListItem -Text "Group Policies unaffected: ", $Script:GPOConfiguration['GPOOwners']['Variables']['WillNotTouch'] -FontWeight normal, bold
} -FontSize 10pt
}
Solution = {
New-HTMLSection -Invisible {
New-HTMLPanel {
& $GpoZaurrOwners['Summary']
& $Script:GPOConfiguration['GPOOwners']['Summary']
}
New-HTMLPanel {
New-HTMLChart {
New-ChartBarOptions -Type barStacked
New-ChartLegend -Name 'Yes', 'No' -Color LightGreen, Salmon
New-ChartBar -Name 'Is administrative' -Value $GpoZaurrOwners['Variables']['IsAdministrative'], $GpoZaurrOwners['Variables']['IsNotAdministrative']
New-ChartBar -Name 'Is consistent' -Value $GpoZaurrOwners['Variables']['IsConsistent'], $GpoZaurrOwners['Variables']['IsNotConsistent']
New-ChartBar -Name 'Is administrative' -Value $Script:GPOConfiguration['GPOOwners']['Variables']['IsAdministrative'], $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotAdministrative']
New-ChartBar -Name 'Is consistent' -Value $Script:GPOConfiguration['GPOOwners']['Variables']['IsConsistent'], $Script:GPOConfiguration['GPOOwners']['Variables']['IsNotConsistent']
} -Title 'Group Policy Owners' -TitleAlignment center
}
}
New-HTMLSection -Name 'Group Policy Owners' {
New-HTMLTable -DataTable $GpoZaurrOwners['Data'] -Filtering {
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOOwners']['Data'] -Filtering {
New-HTMLTableCondition -Name 'IsOwnerConsistent' -Value $false -BackgroundColor Salmon -ComparisonType string -Row
New-HTMLTableCondition -Name 'IsOwnerAdministrative' -Value $false -BackgroundColor Salmon -ComparisonType string -Row
} -PagingOptions 10, 20, 30, 40, 50
+2 -2
View File
@@ -9,13 +9,13 @@
Processing = {
}
Variables = @{
Variables = @{
}
Overview = {
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrPassword['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOPassword']['Data'] -Filtering
}
}
+1 -1
View File
@@ -16,6 +16,6 @@
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrPermissions['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOPermissions']['Data'] -Filtering
}
}
+1 -1
View File
@@ -16,6 +16,6 @@
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrPermissionsRoot['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['GPOPermissionsRoot']['Data'] -Filtering
}
}
+1 -1
View File
@@ -16,6 +16,6 @@
}
Solution = {
New-HTMLTable -DataTable $GPOZaurrSysVolLegacyFiles['Data'] -Filtering
New-HTMLTable -DataTable $Script:GPOConfiguration['SysVolLegacyFiles']['Data'] -Filtering
}
}
+2 -2
View File
@@ -3,9 +3,9 @@
)
if (-not $Script:GPOConfigurationClean) {
# $Script:GPOConfigurationClean = Copy-Dictionary -Dictionary $Script:GPOConfiguration
$Script:GPOConfigurationClean = Copy-Dictionary -Dictionary $Script:GPOConfiguration
} else {
# $Script:GPOConfiguration = Copy-Dictionary -Dictionary $Script:GPOConfigurationClean
$Script:GPOConfiguration = Copy-Dictionary -Dictionary $Script:GPOConfigurationClean
}
if (-not $Script:DefaultTypes) {
$Script:DefaultTypes = foreach ($T in $Script:GPOConfiguration.Keys) {
+13 -12
View File
@@ -1,14 +1,15 @@
$Script:GPOConfiguration = [ordered] @{
GPOOrphans = $GPOZaurrOrphans
GPOOwners = $GPOZaurrOwners
GPOConsistency = $GPOZaurrConsistency
GPODuplicates = $GPOZaurrDuplicates
GPOList = $GPOZaurrList
GPOPassword = $GPOZaurrPassword
GPOPermissions = $GPOZaurrPermissions
GPOPermissionsRoot = $GPOZaurrPermissionsRoot
GPOFiles = $GPOZaurrFiles
GPOAnalysis = $GPOZaurrAnalysis
NetLogonPermissions = $GPOZaurrNetLogonPermissions
SysVolLegacyFiles = $GPOZaurrSysVolLegacyFiles
GPOOrphans = $GPOZaurrOrphans
GPOOwners = $GPOZaurrOwners
GPOConsistency = $GPOZaurrConsistency
GPODuplicates = $GPOZaurrDuplicates
GPOList = $GPOZaurrList
GPOPassword = $GPOZaurrPassword
GPOPermissions = $GPOZaurrPermissions
GPOPermissionsRoot = $GPOZaurrPermissionsRoot
GPOFiles = $GPOZaurrFiles
GPOBlockedInheritance = $GPOZaurrBlockedInheritance
GPOAnalysis = $GPOZaurrAnalysis
NetLogonPermissions = $GPOZaurrNetLogonPermissions
SysVolLegacyFiles = $GPOZaurrSysVolLegacyFiles
}
+1 -2
View File
@@ -7,7 +7,6 @@
[switch] $PassThru,
[switch] $HideHTML
)
$Script:GPOConfigurationClean = Copy-Dictionary -Dictionary $Script:GPOConfiguration
Reset-GPOZaurrStatus # This makes sure types are at it's proper status
$Script:Reporting = [ordered] @{}
@@ -113,7 +112,7 @@
$OutputData
}
Reset-GPOZaurrStatus # This makes sure types are at it's proper status
$Script:GPOConfiguration = Copy-Dictionary -Dictionary $Script:GPOConfigurationClean
}
[scriptblock] $SourcesAutoCompleter = {