使用Powershell获取Office 365 SMTP:电子邮件地址

时间:2017-09-28 00:18:07

标签: powershell

找到我需要的确切脚本:

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}}}

当我使用Powershell5针对Office 365运行此操作时,“电子邮件地址”将返回空白。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这可能适用于Exchange 2007/2010,其中博客文章说它已经过测试,但O365邮箱有点不同。

O365中邮箱对象的EmailAddresses属性是一个包含字符串的数组列表,它们在此处没有PrefixString属性。问题是此时的问题

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

由于PrefixString不存在,您会得到空白结果。

相反,由于EmailAddresses数组只是一串字符串,因此您可以直接过滤它们。

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