Exchange 2010 Powershell 过滤 SMTP 域

Exchange 2010 Powershell 过滤 SMTP 域

如何仅过滤掉 SMTP 地址?我只想报告域名为 的用户@mydomain.com。所有其他域名都将被排除。我正尝试运行一份报告,该报告将根据用户的域排除某些 SIP/SMTP 地址。

$CheckUser = Get-CsUser -Filter {SipAddress -eq $SIP}
  $s = 0
  While ($CheckUser -eq $null) {
    $CheckUser = Get-CsUser -Filter {SipAddress -eq $SIP}
    $s++
    If ($s -eq 2000) {
      $Date = Get-Date –f "MM/dd/yyyy HH:mm:ss"
      "[$Date] User $EUID did not complete OCS configuration"
      $ProcessedDateandTime = Get-Date
      $ProcessedDate = $ProcessedDateandTime.ToShortDateString()
      $ProcessedTime = $ProcessedDateandTime.ToShortTimeString()
      $ErrorCode = "12"
      Add-Content $ProcessedFileName "$ProcessedDate,$ProcessedTime,$EUID,Mailbox Created but OCS Timed Out.,$ErrorCode"
      Add-Content $ErrorLog "$ProcessedDate,$ProcessedTime,$EUID,Mailbox Created but OCS Timed Out."
      $FailureCount++
      Break
    }
  }

答案1

我从您的问题中了解到,您想要列出所有具有以 @mydomain.com 结尾的 smtp 地址的邮箱?就像一份报告,其中包含所有现有的 @mydomain.com 电子邮件地址?

GET-MAILBOX * | where { $_.PrimarySMTPAddress.Domain -eq 'mydomain.com' }

来源 :http://www.energizedtech.com/2010/01/powershell-exchange-2007-list.html

希望有帮助

答案2

我不太确定您要在上面的脚本中的哪个位置发布此内容,但您可以使用运算[string].EndsWith符。例如:

dir|?{$_.name.EndsWith("f")}

将显示当前目录中以字母 结尾的每个项目f。因此,您可以将其调整为:

|?{$_.emailaddress.EndsWith("example.org")}

在你完成Get-查询之后

?Where-Object(PS 管道的标准过滤对象) 的简写。

相关内容