Public/Mailbox/CloudReport/Convert-CloudData.ps1
function Convert-CloudData { [CmdletBinding()] param ( [Parameter()] [ValidateScript( { Test-Path $_ })] $SourceFilePath, [Parameter()] $SourceData ) $InitialDomain = ((Get-AcceptedDomain).where{ $_.InitialDomain }).DomainName $AcceptedDomains = (Get-AcceptedDomain).DomainName if (-not $SourceData) { $SourceData = Import-Csv -Path $SourceFilePath } foreach ($Source in $SourceData) { $AddressList = [System.Collections.Generic.List[string]]::New() if ($Source.InitialAddress) { $TargetInitial = '{0}@{1}' -f ($Source.InitialAddress -split '@')[0], $InitialDomain } else { $TargetInitial = '' } if ($Source.LegacyExchangeDN) { $LegacyExchangeDN = 'x500:{0}' -f $Source.LegacyExchangeDN $AddressList.Add($LegacyExchangeDN) } else { $LegacyExchangeDN = '' } $AddressList.Add((@($Source.EmailAddresses -split [Regex]::Escape('|') ).where{ $_ -like "x500:*" -or ($_ -split '@')[1] -in $AcceptedDomains }).foreach{ '{0}:{1}' -f ($_ -split ':')[0].ToLower(), ($_ -split ':')[1] }) [PSCustomObject]@{ 'DisplayName' = $Source.DisplayName 'Type' = $Source.Type 'RecipientType' = $Source.RecipientType 'RecipientTypeDetails' = $Source.RecipientTypeDetails 'AzureADUPN' = '{0}@{1}' -f ($Source.UserPrincipalName -split '@')[0], $InitialDomain 'UserPrincipalName' = $TargetInitial 'ExternalEmailAddress' = $Source.InitialAddress 'Alias' = $Source.Alias 'PrimarySmtpAddress' = $TargetInitial 'SourceInitial' = $Source.InitialAddress 'ExchangeGuid' = $Source.ExchangeGuid 'ArchiveGuid' = $Source.ArchiveGuid 'LegacyExchangeDN' = $LegacyExchangeDN 'InitialAddress' = $TargetInitial 'EmailAddresses' = @($AddressList) -ne '' -join '|' 'ExternalDirectoryObjectId' = $Source.ExternalDirectoryObjectId } } } |