internal/functions/Get-HydrationUserObjectId.ps1
function Get-HydrationUserObjectId { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] [string] $Output = "./Output" ) # TODO: Logging $debugLogContents = & { Connect-AzAccount -Force -Debug -TenantId $(Get-AzContext).Tenant.Id -SubscriptionId $(Get-AzContext).Subscription.Id -AccountId $(Get-AzContext).Account.Id -Confirm:$False } *>&1 $accountId = "" $jsonObject = "" foreach ($line in $debugLogContents) { if ($line -match ".*wam_telemetry.*") { if ($debug) { #TODO: Logging which line is being evaluated } if ($matches[0] -match "Value: (.*)") { if ($debug) { #TODO: Logging which match is being evaluated } #TODO: If null then throw/log error $jsonObject = ($matches[1] | convertfrom-json -depth 100) #TODO: If null then throw/log error $accountId = $jsonObject.account_id #TODO: If null then throw/log error if ($debug) { #TODO: Logging compressed json object } break } } #TODO: If null then throw/log error } if (-not [string]::IsNullOrEmpty($accountId)) { #TODO: Logging success value #TODO: Logging success status return $accountId } else { if ($debug -and (-not [string]::IsNullOrEmpty($jsonObject))) { #TODO Add error information that json object was empty } throw "Failed to retrieve the account id from the Connect-AzAccount debug log.`nConfirm active connection, and if this is confirmed then run with the -debug flag for additional logging information." } } |