I will go over steps on how to export the list of users with their UPN, Object ID, primary SMTP address and Alias email address.
The Get-AzureADUser cmdlet comes in handy to pull all the user details in this scenario. The Mail attribute contains the Primary SMTP address of the user and the Primary SMTP address and Alias email address are stored in the ProxyAddresses attribute in Azure AD. The ProxyAddresses attribute is a multi-value property. The Primary SMTP address can be easily identified as it is in this format, SMTP:user@emaple.com The upper-case SMTP denotes that it the primary email address.
When an object is synced from on-premise Active Directory to Azure AD, the values in the proxyAddresses attribute in AD are compared with Azure AD rules and then populated in Azure AD. So, the values of the proxyAddresses attribute in AD may not match the ProxyAddresses attribute in AzureAD.
Export all users to csv file
The below script will pull all Azure AD users,
Connect-AzureAD
$Output = @() #create an empty array
$AzureADUsers = Get-AzureADUser -All $true | Select DisplayName,UserprincipalName,ObjectId,Mail,ProxyAddresses #Get all Azure AD users
ForEach ($User in $AzureADUsers)
{
$Output += New-Object PSObject -property $([ordered]@{ #fetch user detail and add to $output
UserName = $User.DisplayName
UserprincipalName = $User.UserprincipalName
UserId = $User.objectId
SMTPAddress = $User.Mail
AliasSMTPAddresses = ($User.ProxyAddresses | Where-object {$_ -clike 'smtp:*'} | ForEach-Object {$_ -replace 'smtp:',''}) -join ','
})
}
$Output | Export-csv "C:\tmp\O365Users_$((Get-Date).ToString("MMddyyyy_HHmmss")).csv" -NoTypeInformation -Encoding UTF8 #Export users to csv file
Output file,
Thank you for stopping by.✌