如何检查是否使用powershell在Exchange 2010中读取了电子邮件?

如何检查是否使用powershell在Exchange 2010中读取了电子邮件?,powershell,exchange-server-2010,Powershell,Exchange Server 2010,我们正在搜索Exchange 2010的收件箱,试图找出指定的用户/邮箱是否读取了特定的电子邮件 我们可以利用powershell进行搜索,但不确定如何执行此操作您可以使用Exchange Web服务。这将要求运行脚本的用户具有访问相关邮箱的权限,并且您知道要查找的电子邮件的主题 Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\Microsoft.Exchange.WebServices.dll" $e

我们正在搜索Exchange 2010的收件箱,试图找出指定的用户/邮箱是否读取了特定的电子邮件


我们可以利用powershell进行搜索,但不确定如何执行此操作

您可以使用Exchange Web服务。这将要求运行脚本的用户具有访问相关邮箱的权限,并且您知道要查找的电子邮件的主题

Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\Microsoft.Exchange.WebServices.dll"

$exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010)
$exchService.AutodiscoverUrl("email@yourdomain.com",{$true})

$Mailbox = New-Object Microsoft.Exchange.WebServices.Data.Mailbox("email@yourdomain.com")
$Inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchservice,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)

$MessageView = New-Object Microsoft.Exchange.WebServices.Data.ItemView(100) #Find Max 100 Items

$SerachFilter1 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::Subject,"Test Subject")
$SerachFilter2 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::IsRead, $false)
$SearchFilterCollection = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+SearchFilterCollection([Microsoft.Exchange.WebServices.Data.LogicalOperator]::And)
$SearchFilterCollection.Add($SerachFilter1)
$SearchFilterCollection.Add($SerachFilter2)

If($Messages.TotalCount > 0){

    #Do something....
}