Public/Discovery/Google/Export-GooglePhone.ps1
function Export-GooglePhone { <# .SYNOPSIS Google's GAM tool exports aliases This transforms that data and exports it into an importable format in the Microsoft world .DESCRIPTION Exports all organizational related information from Google GAM output to then be imported into Microsoft's environments .NOTES General notes #> param ( [Parameter(Mandatory)] [string] $MailboxCSV ) $MbxList = Import-Csv $MailboxCSV $PropList = ($MbxList | Select-Object -first 1).psobject.properties.name.where{ $_ -match 'phones.*type' } foreach ($Mbx in $MbxList) { $Phone = [ordered]@{ DisplayName = $Mbx."name.fullName" FirstName = $Mbx."name.GivenName" LastName = $Mbx."name.familyName" PrimarySmtpAddress = $Mbx.primaryEmail } foreach ($Prop in $PropList) { $WorkNum = $Prop.where{ $Mbx.$_ -eq "work" } $WorkNumMatch = $WorkNum.where{ $_ -match "(?<=\.)\d+(?=\.)" } if ($WorkNumMatch) { $Num = $Matches[0] $Phone.add('PhoneNumber', $Mbx."phones.$Num.value") } $MobileNum = $Prop.where{ $Mbx.$_ -eq "mobile" } $MobileNumMatch = $MobileNum.where{ $_ -match "(?<=\.)\d+(?=\.)" } if ($MobileNumMatch) { $Num = $Matches[0] $Phone.add('MobilePhone', $Mbx."phones.$Num.value") } } if (-not $Phone.PhoneNumber) { $Phone.add('PhoneNumber', $null) } if (-not $Phone.MobilePhone) { $Phone.add('MobilePhone', $null) } [PSCustomObject]$Phone } } |