user3565039
user3565039

Reputation: 185

Using Powershell to get Office 365 SMTP: email addresses

Found the exact script I need:

https://unlockpowershell.wordpress.com/2010/01/27/powershell-get-mailbox-display-smtp-addresses/

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,ServerName,PrimarySmtpAddress, @{Name=“EmailAddresses”;Expression={$_.EmailAddresses |Where-Object {$_.PrefixString -ceq “smtp”} | ForEach-Object {$_.SmtpAddress}}}

When I run this using Powershell5 against Office 365, "Email Addresses" is returned blank.

Any ideas?

Upvotes: 2

Views: 5857

Answers (1)

mroloff
mroloff

Reputation: 407

This may have worked on Exchange 2007/2010, where the blog post says it was tested, but O365 mailboxes are a little different.

The EmailAddresses property of a mailbox object in O365 is an array list containing strings and they have no PrefixString property here. The issue is at this point

Where-Object {$_.PrefixString -ceq “smtp”}

Since PrefixString doesn't exist, you get blank results.

Instead, since the EmailAddresses array is just a bunch of strings, you can filter on those directly.

Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,ServerName,PrimarySmtpAddress, @{Name=“EmailAddresses”;Expression={$_.EmailAddresses | Where-Object {$_ -clike “smtp*”}}}

Upvotes: 4

Related Questions