From 38740987389c81fdb8d9ff9bac9e6a7a774bea2f Mon Sep 17 00:00:00 2001 From: Przemyslaw Klys Date: Sat, 27 Jun 2020 10:24:12 +0200 Subject: [PATCH] Additional protection against CNF duplicates --- Public/Get-GPOZaurrAD.ps1 | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Public/Get-GPOZaurrAD.ps1 b/Public/Get-GPOZaurrAD.ps1 index e9f4dec..11cb8f4 100644 --- a/Public/Get-GPOZaurrAD.ps1 +++ b/Public/Get-GPOZaurrAD.ps1 @@ -50,19 +50,24 @@ } Get-ADObject @Splat -Properties DisplayName, Name, Created, Modified, gPCFileSysPath, gPCFunctionalityVersion, gPCWQLFilter, gPCMachineExtensionNames, Description, CanonicalName, DistinguishedName | ForEach-Object -Process { $DomainCN = ConvertFrom-DistinguishedName -DistinguishedName $_.DistinguishedName -ToDomainCN - $Output = [ordered]@{ } - $Output['DisplayName'] = $_.DisplayName - $Output['DomainName'] = $DomainCN - $Output['Description'] = $_.Description - $Output['GUID'] = $_.Name -replace '{' -replace '}' - $Output['Path'] = $_.gPCFileSysPath - $Output['FunctionalityVersion'] = $_.gPCFunctionalityVersion - $Output['Created'] = $_.Created - $Output['Modified'] = $_.Modified - $Output['GPOCanonicalName'] = $_.CanonicalName - $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_.DistinguishedName -ToDC - $Output['GPODistinguishedName'] = $_.DistinguishedName - [PSCustomObject] $Output + $GUID = $_.Name -replace '{' -replace '}' + if (($GUID).Length -ne 36) { + Write-Warning "Get-GPOZaurrAD - GPO GUID ($($($GUID -join ' '))) is incorrect. Skipping $($_.DisplayName) / Domain: $($DomainCN)" + } else { + $Output = [ordered]@{ } + $Output['DisplayName'] = $_.DisplayName + $Output['DomainName'] = $DomainCN + $Output['Description'] = $_.Description + $Output['GUID'] = $GUID + $Output['Path'] = $_.gPCFileSysPath + $Output['FunctionalityVersion'] = $_.gPCFunctionalityVersion + $Output['Created'] = $_.Created + $Output['Modified'] = $_.Modified + $Output['GPOCanonicalName'] = $_.CanonicalName + $Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_.DistinguishedName -ToDC + $Output['GPODistinguishedName'] = $_.DistinguishedName + [PSCustomObject] $Output + } } } }