Prevent errors from doing harm

This commit is contained in:
Przemyslaw Klys
2021-01-04 21:29:57 +01:00
parent 37d8db92f7
commit a74b662c9b
+11 -1
View File
@@ -34,6 +34,7 @@ function Get-GPOZaurrBrokenLink {
[alias('Domain', 'Domains')][string[]] $IncludeDomains, [alias('Domain', 'Domains')][string[]] $IncludeDomains,
[System.Collections.IDictionary] $ExtendedForestInformation [System.Collections.IDictionary] $ExtendedForestInformation
) )
$ErrorFound = $false
$PoliciesAD = @{} $PoliciesAD = @{}
# We need to request all GPOS from Forest. Requesting just for any domain won't be enough # We need to request all GPOS from Forest. Requesting just for any domain won't be enough
$ForestInformation = Get-WinADForestDetails -Forest $Forest -Extended # -Extended $ForestInformation = Get-WinADForestDetails -Forest $Forest -Extended # -Extended
@@ -42,7 +43,13 @@ function Get-GPOZaurrBrokenLink {
$SystemsContainer = $ForestInformation['DomainsExtended'][$Domain].SystemsContainer $SystemsContainer = $ForestInformation['DomainsExtended'][$Domain].SystemsContainer
if ($SystemsContainer) { if ($SystemsContainer) {
$PoliciesSearchBase = -join ("CN=Policies,", $SystemsContainer) $PoliciesSearchBase = -join ("CN=Policies,", $SystemsContainer)
$PoliciesInAD = Get-ADObject -SearchBase $PoliciesSearchBase -SearchScope OneLevel -Filter * -Server $QueryServer -Properties Name, gPCFileSysPath, DisplayName, DistinguishedName, Description, Created, Modified, ObjectClass, ObjectGUID try {
$PoliciesInAD = Get-ADObject -ErrorAction Stop -SearchBase $PoliciesSearchBase -SearchScope OneLevel -Filter * -Server $QueryServer -Properties Name, gPCFileSysPath, DisplayName, DistinguishedName, Description, Created, Modified, ObjectClass, ObjectGUID
} catch {
Write-Warning "Get-GPOZaurrBrokenLink - An error occured while searching $PoliciesSearchBase. Error $($_.Exception.Message). Please resolve this before continuing."
$ErrorFound = $true
break
}
foreach ($Policy in $PoliciesInAD) { foreach ($Policy in $PoliciesInAD) {
$GUIDFromDN = ConvertFrom-DistinguishedName -DistinguishedName $Policy.DistinguishedName $GUIDFromDN = ConvertFrom-DistinguishedName -DistinguishedName $Policy.DistinguishedName
# $Key = "$($Domain)$($GuidFromDN)" # $Key = "$($Domain)$($GuidFromDN)"
@@ -63,6 +70,9 @@ function Get-GPOZaurrBrokenLink {
Write-Warning "Get-GPOZaurrBroken - Couldn't get GPOs from $Domain. Skipping" Write-Warning "Get-GPOZaurrBroken - Couldn't get GPOs from $Domain. Skipping"
} }
} }
if ($ErrorFound) {
return
}
# In case of links we can request here whatever user requested. # In case of links we can request here whatever user requested.
# This will search for broken links in domain user requested # This will search for broken links in domain user requested
$ForestInformation = Get-WinADForestDetails -Forest $Forest -Extended -IncludeDomains $IncludeDomains -ExcludeDomains $ExcludeDomains -ExtendedForestInformation $ExtendedForestInformation $ForestInformation = Get-WinADForestDetails -Forest $Forest -Extended -IncludeDomains $IncludeDomains -ExcludeDomains $ExcludeDomains -ExtendedForestInformation $ExtendedForestInformation