mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-07-26 20:00:09 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f7cf18500d | |||
| 1becfbca60 | |||
| 82c21edcc2 | |||
| e56cf3bde3 | |||
| 996139ab4a | |||
| 5590e3bf31 | |||
| 9db54b338b | |||
| e79d95c0fd | |||
| 8c1f95b1b8 | |||
| 4d9f1e7fba | |||
| 88fb1651a9 | |||
| 9696fb0cab |
@@ -2,8 +2,6 @@
|
||||
|
||||
Invoke-GPOZaurr -Type GPOOrganizationalUnit -Online -FilePath $PSScriptRoot\Reports\GPOZaurr.html
|
||||
|
||||
return
|
||||
|
||||
# Shows how to use exclusions (supported only in GPOBlockedInheritance)
|
||||
Invoke-GPOZaurr -FilePath $PSScriptRoot\Reports\GPOZaurr.html -Type GPOBlockedInheritance -Online -Exclusions @(
|
||||
'OU=Test,OU=ITR02,DC=ad,DC=evotec,DC=xyz'
|
||||
|
||||
+1
-1
@@ -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-GPOZaurrBrokenLink', 'Get-GPOZaurrDictionary', 'Get-GPOZaurrDuplicateObject', 'Get-GPOZaurrFiles', 'Get-GPOZaurrFilesPolicyDefinition', 'Get-GPOZaurrFolders', 'Get-GPOZaurrInheritance', 'Get-GPOZaurrLegacyFiles', 'Get-GPOZaurrLink', 'Get-GPOZaurrLinkSummary', 'Get-GPOZaurrNetLogon', 'Get-GPOZaurrOrganizationalUnit', 'Get-GPOZaurrOwner', 'Get-GPOZaurrPassword', 'Get-GPOZaurrPermission', 'Get-GPOZaurrPermissionAnalysis', 'Get-GPOZaurrPermissionConsistency', 'Get-GPOZaurrPermissionIssue', '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-GPOZaurrLinkEmptyOU', 'Remove-GPOZaurrPermission', 'Remove-GPOZaurrWMI', 'Repair-GPOZaurrBrokenLink', 'Repair-GPOZaurrNetLogonOwner', 'Repair-GPOZaurrPermission', 'Repair-GPOZaurrPermissionConsistency', 'Restore-GPOZaurr', 'Save-GPOZaurrFiles', 'Set-GPOOwner', 'Set-GPOZaurrOwner', 'Set-GPOZaurrStatus', 'Skip-GroupPolicy')
|
||||
GUID = 'f7d4c9e4-0298-4f51-ad77-e8e3febebbde'
|
||||
ModuleVersion = '0.0.137'
|
||||
ModuleVersion = '0.0.140'
|
||||
PowerShellVersion = '5.1'
|
||||
PrivateData = @{
|
||||
PSData = @{
|
||||
|
||||
@@ -4,6 +4,22 @@
|
||||
[PSCustomObject] $GPO,
|
||||
[switch] $SingleObject
|
||||
)
|
||||
# Redirection types a stored as GUID in GPOs. This hash is used to translate into readable text.
|
||||
$FolderID = @{
|
||||
"{1777F761-68AD-4D8A-87BD-30B759FA33DD}" = "Favorites"
|
||||
"{FDD39AD0-238F-46AF-ADB4-6C85480369C7}" = "Documents"
|
||||
"{33E28130-4E1E-4676-835A-98395C3BC3BB}" = "Pictures"
|
||||
"{4BD8D571-6D19-48D3-BE97-422220080E43}" = "Music"
|
||||
"{18989B1D-99B5-455B-841C-AB7C74E4DDFC}" = "Videos"
|
||||
"{3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}" = "AppDataRoaming"
|
||||
"{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}" = "Desktop"
|
||||
"{625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}" = "StartMenu"
|
||||
"{374DE290-123F-4565-9164-39C4925E467B}" = "Downloads"
|
||||
"{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}" = "Saved Games"
|
||||
"{56784854-C6CB-462B-8169-88E350ACB882}" = "Contacts"
|
||||
"{7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}" = "Searches"
|
||||
"{BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968}" = "Links"
|
||||
}
|
||||
if ($SingleObject) {
|
||||
$CreateGPO = [ordered]@{
|
||||
DisplayName = $GPO.DisplayName
|
||||
@@ -18,6 +34,8 @@
|
||||
[Array] $CreateGPO['Settings'] = foreach ($Folder in $GPO.DataSet) {
|
||||
foreach ($Location in $Folder.Location) {
|
||||
[PSCustomObject] @{
|
||||
ID = $Folder.ID
|
||||
FolderType = $FolderID[$Folder.Id]
|
||||
DestinationPath = $Location.DestinationPath
|
||||
SecuritySID = $Location.SecurityGroup.SID.'#text'
|
||||
SecurityName = $Location.SecurityGroup.Name.'#text'
|
||||
@@ -47,6 +65,7 @@
|
||||
GUID = $GPO.GUID
|
||||
GpoType = $GPO.GpoType
|
||||
Id = $Folder.Id
|
||||
FolderType = $FolderID[$Folder.Id]
|
||||
DestinationPath = $Location.DestinationPath
|
||||
SecuritySID = $Location.SecurityGroup.SID.'#text'
|
||||
SecurityName = $Location.SecurityGroup.Name.'#text'
|
||||
|
||||
+11
-2
@@ -230,9 +230,18 @@
|
||||
# Mark GPO as excluded
|
||||
$Exclude = $false
|
||||
if ($ExcludeGroupPolicies) {
|
||||
$GUID = $XMLContent.GPO.Identifier.Identifier.'#text'
|
||||
$GUIDWithOutBrackets = $GUID.Replace('{', '').Replace('}', '')
|
||||
$PolicyWithDomain = -join ($XMLContent.GPO.Identifier.Domain.'#text', $XMLContent.GPO.Name)
|
||||
$PolicyWithDomainID = -join ($XMLContent.GPO.Identifier.Domain.'#text', $XMLContent.GPO.Identifier.Identifier.'#text')
|
||||
if ($ExcludeGroupPolicies[$XMLContent.GPO.Name] -or $ExcludeGroupPolicies[$PolicyWithDomain] -or $ExcludeGroupPolicies[$PolicyWithDomainID] -or $ExcludeGroupPolicies[$XMLContent.GPO.Identifier.Identifier.'#text']) {
|
||||
$PolicyWithDomainID = -join ($XMLContent.GPO.Identifier.Domain.'#text', $GUID)
|
||||
$PolicyWithDomainIDWithoutBrackets = -join ($XMLContent.GPO.Identifier.Domain.'#text', $GUIDWithOutBrackets)
|
||||
if ($ExcludeGroupPolicies[$XMLContent.GPO.Name] -or
|
||||
$ExcludeGroupPolicies[$PolicyWithDomain] -or
|
||||
$ExcludeGroupPolicies[$PolicyWithDomainID] -or
|
||||
$ExcludeGroupPolicies[$GUID] -or
|
||||
$ExcludeGroupPolicies[$GUIDWithOutBrackets] -or
|
||||
$ExcludeGroupPolicies[$PolicyWithDomainIDWithoutBrackets]
|
||||
) {
|
||||
$Exclude = $true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
'ObjectsCountIndirect' = 0
|
||||
'ObjectsCountTotal' = 0
|
||||
'Level' = 'Top'
|
||||
'RootLevel' = $TopOU.Name
|
||||
'Domain' = $Domain
|
||||
}
|
||||
|
||||
@@ -61,6 +62,7 @@
|
||||
'ObjectsCountIndirect' = 0
|
||||
'ObjectsCountTotal' = 0
|
||||
'Level' = 'Child'
|
||||
'RootLevel' = $TopOU.Name
|
||||
'Domain' = $Domain
|
||||
}
|
||||
}
|
||||
@@ -132,6 +134,7 @@
|
||||
[PSCustomObject] @{
|
||||
Organizationalunit = $OU
|
||||
Level = $CachedOu[$OU]['Level']
|
||||
RootLevel = $CachedOu[$OU]['RootLevel']
|
||||
DomainName = $CachedOu[$OU]['Domain']
|
||||
Status = $Status
|
||||
GPOCount = $CachedOu[$OU]['LinkedGroupPolicyObjects'].Count
|
||||
|
||||
@@ -55,6 +55,12 @@ To understand the usage I've created blog post you may find useful
|
||||
|
||||
## Changelog
|
||||
|
||||
- 0.0.140 - 2021.08.24
|
||||
- ☑ Improved `Invoke-GPOZaurr` - type `GPOAnalysis` - added folder redirection type - [tnx PatrickOnGit](https://github.com/EvotecIT/GPOZaurr/pull/24)
|
||||
- 0.0.139 - 2021.08.19
|
||||
- ☑ Improved `Invoke-GPOZaurr` - type `GPOOrganizationalUnit` - adding RootLevel information
|
||||
- 0.0.138 - 2021.08.18
|
||||
- 🐛 Fix for exclusions using GUID with brackets for Invoke-GPOZaurr `GPOList` and related options
|
||||
- 0.0.137 - 2021.08.17
|
||||
- ☑ Improved `Invoke-GPOZaurr` - type `GPOOrganizationalUnit` - moving delete of OU as non-mandatory option
|
||||
- 0.0.136 - 2021.08.17
|
||||
|
||||
Reference in New Issue
Block a user