如何仅过滤掉 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 管道的标准过滤对象) 的简写。