diff --git a/GPOZaurr.psd1 b/GPOZaurr.psd1 index 76bc573..1ee3bf5 100644 --- a/GPOZaurr.psd1 +++ b/GPOZaurr.psd1 @@ -8,7 +8,7 @@ Description = 'Group Policy Eater is a PowerShell module that aims to gather information about Group Policies but also allows fixing issues that you may find in them.' FunctionsToExport = @('Add-GPOPermission', 'Add-GPOZaurrPermission', 'Backup-GPOZaurr', 'Clear-GPOZaurrSysvolDFSR', 'ConvertFrom-CSExtension', 'Find-CSExtension', 'Get-GPOZaurr', 'Get-GPOZaurrAD', 'Get-GPOZaurrBackupInformation', 'Get-GPOZaurrBroken', 'Get-GPOZaurrDictionary', 'Get-GPOZaurrDuplicateObject', 'Get-GPOZaurrFiles', 'Get-GPOZaurrFilesPolicyDefinition', 'Get-GPOZaurrFolders', 'Get-GPOZaurrInheritance', 'Get-GPOZaurrLegacyFiles', 'Get-GPOZaurrLink', 'Get-GPOZaurrLinkSummary', 'Get-GPOZaurrNetLogon', 'Get-GPOZaurrOwner', 'Get-GPOZaurrPassword', 'Get-GPOZaurrPermission', 'Get-GPOZaurrPermissionConsistency', 'Get-GPOZaurrPermissionRoot', 'Get-GPOZaurrPermissionSummary', 'Get-GPOZaurrSysvolDFSR', 'Get-GPOZaurrWMI', 'Invoke-GPOZaurr', 'Invoke-GPOZaurrContent', 'Invoke-GPOZaurrPermission', 'Invoke-GPOZaurrSupport', 'New-GPOZaurrWMI', 'Optimize-GPOZaurr', 'Remove-GPOPermission', 'Remove-GPOZaurr', 'Remove-GPOZaurrBroken', 'Remove-GPOZaurrDuplicateObject', 'Remove-GPOZaurrFolders', 'Remove-GPOZaurrLegacyFiles', 'Remove-GPOZaurrPermission', 'Remove-GPOZaurrWMI', 'Repair-GPOZaurrNetLogonOwner', 'Repair-GPOZaurrPermissionConsistency', 'Restore-GPOZaurr', 'Save-GPOZaurrFiles', 'Set-GPOOwner', 'Set-GPOZaurrOwner') GUID = 'f7d4c9e4-0298-4f51-ad77-e8e3febebbde' - ModuleVersion = '0.0.80' + ModuleVersion = '0.0.81' PowerShellVersion = '5.1' PrivateData = @{ PSData = @{ @@ -18,7 +18,7 @@ } } RequiredModules = @(@{ - ModuleVersion = '0.0.187' + ModuleVersion = '0.0.188' ModuleName = 'PSSharedGoods' Guid = 'ee272aa8-baaa-4edf-9f45-b6d6f7d844fe' }, @{ diff --git a/Private/Invoke.GPOZaurrPermissionsRead.ps1 b/Private/Invoke.GPOZaurrPermissionsRead.ps1 new file mode 100644 index 0000000..ba020d0 --- /dev/null +++ b/Private/Invoke.GPOZaurrPermissionsRead.ps1 @@ -0,0 +1,59 @@ +$GPOZaurrPermissionsRead = [ordered] @{ + Name = 'Group Policy Authenticated Users Permissions' + Enabled = $true + Action = $null + Data = $null + Execute = { + Get-GPOZaurrPermission -Type AuthenticatedUsers -ReturnSecurityWhenNoData + } + Processing = { + # Create Per Domain Variables + $Script:Reporting['GPOPermissionsRead']['Variables']['WillFixPerDomain'] = @{} + $Script:Reporting['GPOPermissionsRead']['Variables']['WillNotTouchPerDomain'] = @{} + foreach ($GPO in $Script:Reporting['GPOPermissionsRead']['Data']) { + # Create Per Domain Variables + if (-not $Script:Reporting['GPOPermissionsRead']['Variables']['WillFixPerDomain'][$GPO.DomainName]) { + $Script:Reporting['GPOPermissionsRead']['Variables']['WillFixPerDomain'][$GPO.DomainName] = 0 + } + if (-not $Script:Reporting['GPOPermissionsRead']['Variables']['WillNotTouchPerDomain'][$GPO.DomainName]) { + $Script:Reporting['GPOPermissionsRead']['Variables']['WillNotTouchPerDomain'][$GPO.DomainName] = 0 + } + # Checks + if ($GPO.Permission -in 'GpoApply', 'GpoRead') { + $Script:Reporting['GPOPermissionsRead']['Variables']['WillNotTouch']++ + $Script:Reporting['GPOPermissionsRead']['Variables']['WillNotTouchPerDomain'][$GPO.DomainName]++ + } else { + $Script:Reporting['GPOPermissionsRead']['Variables']['WillFix']++ + $Script:Reporting['GPOPermissionsRead']['Variables']['WillFixPerDomain'][$GPO.DomainName]++ + } + } + if ($Script:Reporting['GPOPermissionsRead']['Variables']['WillFix'].Count -gt 0) { + $Script:Reporting['GPOPermissionsRead']['ActionRequired'] = $true + } else { + $Script:Reporting['GPOPermissionsRead']['ActionRequired'] = $false + } + } + Variables = @{ + WillFix = 0 + WillNotTouch = 0 + WillFixPerDomain = $null + WillNotTouchPerDomain = $ull + } + Overview = { + + } + Summary = { + + } + Solution = { + New-HTMLTable -DataTable $Script:Reporting['GPOPermissions']['Data'] -Filtering + if ($Script:Reporting['GPOPermissions']['WarningsAndErrors']) { + New-HTMLSection -Name 'Warnings & Errors to Review' { + New-HTMLTable -DataTable $Script:Reporting['GPOPermissions']['WarningsAndErrors'] -Filtering { + New-HTMLTableCondition -Name 'Type' -Value 'Warning' -BackgroundColor SandyBrown -ComparisonType string -Row + New-HTMLTableCondition -Name 'Type' -Value 'Error' -BackgroundColor Salmon -ComparisonType string -Row + } + } + } + } +} \ No newline at end of file diff --git a/Private/Script.GPOConfiguration.ps1 b/Private/Script.GPOConfiguration.ps1 index 5fff5e4..b6d4fab 100644 --- a/Private/Script.GPOConfiguration.ps1 +++ b/Private/Script.GPOConfiguration.ps1 @@ -6,6 +6,7 @@ GPOList = $GPOZaurrList GPOPassword = $GPOZaurrPassword GPOPermissions = $GPOZaurrPermissions + GPOPermissionsRead = $GPOZaurrPermissionsRead GPOPermissionsRoot = $GPOZaurrPermissionsRoot GPOFiles = $GPOZaurrFiles GPOBlockedInheritance = $GPOZaurrBlockedInheritance diff --git a/README.md b/README.md index d72acb4..e035ee0 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,8 @@ That's it. Whenever there's a new version, you run the command, and you can enjo ## Changelog +- 0.0.81 + - [x] Fix for `Set-GPOZaurrOwner` in case of missing permissions - 0.0.80 - 12.11.2020 - [x] Improves `Invoke-GPOZaurr` - [x] Type `GPOOrphans` clearer options, updated texts, split per domain