Private/Groups/Resolve-HydrationIndeterminateGroupCreate.ps1
|
function Resolve-HydrationIndeterminateGroupCreate { [CmdletBinding()] param( [Parameter(Mandatory)] [object]$GroupDefinition, [Parameter(Mandatory)] [string]$ResultTypeName, [Parameter(Mandatory)] [string]$Reason ) Write-Warning "$Reason for '$($GroupDefinition.displayName)' - verifying directly" try { $lookupResult = Invoke-MgGraphRequest -Method GET -Uri "beta$(Get-HydrationGroupLookupUri -GroupDefinition $GroupDefinition)" -ErrorAction Stop $matchingGroup = Select-HydrationGroupLookupMatch -LookupResult $lookupResult -GroupDefinition $GroupDefinition -PreferHydrationMarker if ($matchingGroup) { Write-Verbose " Verified: $($GroupDefinition.displayName) exists after indeterminate creation response" return New-HydrationResult -Type $ResultTypeName -Name $GroupDefinition.displayName -Id $matchingGroup.id -Action 'Skipped' -Status 'Group exists after indeterminate creation response' } $statusMessage = "Creation indeterminate: $Reason; not retried to avoid duplicate group creation" Write-Warning " Failed: $($GroupDefinition.displayName) - $statusMessage" return New-HydrationResult -Type $ResultTypeName -Name $GroupDefinition.displayName -Action 'Failed' -Status $statusMessage } catch { $errorMessage = Get-GraphErrorMessage -ErrorRecord $_ Write-Warning " Failed: $($GroupDefinition.displayName) - $errorMessage" return New-HydrationResult -Type $ResultTypeName -Name $GroupDefinition.displayName -Action 'Failed' -Status "Creation indeterminate: $Reason and verification failed: $errorMessage" } } |