From 672c881927ecf4add130582ca002c46176644836 Mon Sep 17 00:00:00 2001 From: Przemyslaw Klys Date: Wed, 17 Jun 2020 14:04:08 +0200 Subject: [PATCH] Update --- GPOZaurr.psd1 | 2 +- Private/Get-PrivGPOZaurrLInk.ps1 | 56 ++++++++++++++++++++------------ README.md | 2 ++ 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/GPOZaurr.psd1 b/GPOZaurr.psd1 index 646a58e..af15cd3 100644 --- a/GPOZaurr.psd1 +++ b/GPOZaurr.psd1 @@ -7,7 +7,7 @@ Description = 'Group Policy Eater' FunctionsToExport = 'Add-GPOPermission', 'Add-GPOZaurrPermission', 'Backup-GPOZaurr', 'Get-GPOZaurr', 'Get-GPOZaurrAD', 'Get-GPOZaurrBackupInformation', 'Get-GPOZaurrLegacyFiles', 'Get-GPOZaurrLink', 'Get-GPOZaurrLinkSummary', 'Get-GPOZaurrOwner', 'Get-GPOZaurrPassword', 'Get-GPOZaurrPermission', 'Get-GPOZaurrPermissionConsistency', 'Get-GPOZaurrSysvol', 'Get-WMIFilter', 'Get-GPOZaurrWMI', 'Invoke-GPOZaurrPermission', 'New-GPOZaurrWMI', 'Remove-GPOPermission', 'Remove-GPOZaurr', 'Remove-GPOZaurrLegacyFiles', 'Remove-GPOZaurrOrphanedSysvolFolders', 'Remove-GPOZaurrPermission', 'Remove-GPOZaurrWMI', 'Repair-GPOZaurrPermissionConsistency', 'Restore-GPOZaurr', 'Save-GPOZaurrFiles', 'Set-GPOOwner', 'Set-GPOZaurrOwner' GUID = 'f7d4c9e4-0298-4f51-ad77-e8e3febebbde' - ModuleVersion = '0.0.37' + ModuleVersion = '0.0.38' PowerShellVersion = '5.1' PrivateData = @{ PSData = @{ diff --git a/Private/Get-PrivGPOZaurrLInk.ps1 b/Private/Get-PrivGPOZaurrLInk.ps1 index fb9d1e1..11313ec 100644 --- a/Private/Get-PrivGPOZaurrLInk.ps1 +++ b/Private/Get-PrivGPOZaurrLInk.ps1 @@ -18,17 +18,25 @@ } $Search = -join ($DomainCN, $Output['Guid']) if ($GPOCache -and -not $Limited) { - $Output['DisplayName'] = $GPOCache[$Search].DisplayName - $Output['DomainName'] = $GPOCache[$Search].DomainName - $Output['Owner'] = $GPOCache[$Search].Owner - $Output['GpoStatus'] = $GPOCache[$Search].GpoStatus - $Output['Description'] = $GPOCache[$Search].Description - $Output['CreationTime'] = $GPOCache[$Search].CreationTime - $Output['ModificationTime'] = $GPOCache[$Search].ModificationTime + if ($GPOCache[$Search]) { + $Output['DisplayName'] = $GPOCache[$Search].DisplayName + $Output['DomainName'] = $GPOCache[$Search].DomainName + $Output['Owner'] = $GPOCache[$Search].Owner + $Output['GpoStatus'] = $GPOCache[$Search].GpoStatus + $Output['Description'] = $GPOCache[$Search].Description + $Output['CreationTime'] = $GPOCache[$Search].CreationTime + $Output['ModificationTime'] = $GPOCache[$Search].ModificationTime + $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC + $Output['GPODistinguishedName'] = $_ + [PSCustomObject] $Output + } else { + Write-Warning "Get-PrivGPOZaurrLink - Couldn't find link $Search in a GPO Cache. Lack of permissions for given GPO? Are you running as admin? Skipping." + } + } else { + $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC + $Output['GPODistinguishedName'] = $_ + [PSCustomObject] $Output } - $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC - $Output['GPODistinguishedName'] = $_ - [PSCustomObject] $Output } } } elseif ($Object.LinkedGroupPolicyObjects -and $Object.LinkedGroupPolicyObjects.Trim() -ne '') { @@ -42,17 +50,25 @@ } $Search = -join ($DomainCN, $Output['Guid']) if ($GPOCache -and -not $Limited) { - $Output['Name'] = $GPOCache[$Search].DisplayName - $Output['DomainName'] = $GPOCache[$Search].DomainName - $Output['Owner'] = $GPOCache[$Search].Owner - $Output['GpoStatus'] = $GPOCache[$Search].GpoStatus - $Output['Description'] = $GPOCache[$Search].Description - $Output['CreationTime'] = $GPOCache[$Search].CreationTime - $Output['ModificationTime'] = $GPOCache[$Search].ModificationTime + if ($GPOCache[$Search]) { + $Output['Name'] = $GPOCache[$Search].DisplayName + $Output['DomainName'] = $GPOCache[$Search].DomainName + $Output['Owner'] = $GPOCache[$Search].Owner + $Output['GpoStatus'] = $GPOCache[$Search].GpoStatus + $Output['Description'] = $GPOCache[$Search].Description + $Output['CreationTime'] = $GPOCache[$Search].CreationTime + $Output['ModificationTime'] = $GPOCache[$Search].ModificationTime + $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC + $Output['GPODistinguishedName'] = $_ + [PSCustomObject] $Output + } else { + Write-Warning "Get-PrivGPOZaurrLink - Couldn't find link $Search in a GPO Cache. Lack of permissions for given GPO? Are you running as admin? Skipping." + } + } else { + $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC + $Output['GPODistinguishedName'] = $_ + [PSCustomObject] $Output } - $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC - $Output['GPODistinguishedName'] = $_ - [PSCustomObject] $Output } } } diff --git a/README.md b/README.md index 15ed2ca..b3bad2b 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ That's it. Whenever there's a new version, you run the command, and you can enjo ## Changelog +- 0.0.38 - 17.06.2020 + - Update to Get-PrivGPOZaurrLink which would cause problems to `Invoke-GPOZaurrPermission` if it would be run without Administrative permission and GPO wouldn't be accessible for that user - 0.0.37 - 16.06.2020 - Updates to `Invoke-GPOZaurrPermission` with new parameterset `Level` - Updates to `Get-GPOZaurrLinkSummary`