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) { $TargetInitial = '{0}@{1}' -f ($Source.InitialAddress -split '@')[0], $InitialDomain $AddressList = [System.Collections.Generic.List[string]]::New() $AddressList.Add('x500:{0}' -f $Source.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 'Alias' = $Source.Alias 'SourceType' = $Source.RecipientTypeDetails 'RecipientType' = 'MailUser' 'RecipientTypeDetails' = 'MailUser' 'UserPrincipalName' = $TargetInitial 'PrimarySmtpAddress' = $TargetInitial 'ExchangeGuid' = $Source.ExchangeGuid 'ArchiveGuid' = $Source.ArchiveGuid 'LegacyExchangeDN' = 'x500:{0}' -f $Source.LegacyExchangeDN 'InitialAddress' = $TargetInitial 'EmailAddresses' = @($AddressList) -ne '' -join '|' 'ExternalEmailAddress' = $Source.InitialAddress } } } |