找到我需要的确切脚本:
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运行此操作时,“电子邮件地址”将返回空白。
有什么想法吗?
答案 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*”}}}