2017-07-08 55 views
0

我在PowerShell上使用EWS管理邮箱的脚本,但是我无法使用当前过滤器并过滤某些类别。EWS分类搜索

我想,通过启动过滤类别_或*,并适用于我目前的过滤器

$sfRead = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::IsRead, $True) 

$WIPSubject = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+ContainsSubstring([Microsoft.Exchange.WebServices.Data.ItemSchema]::Subject, "Assigned") 
$sfNot = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+Not($WIPSubject) 

$sfCollection = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+SearchFilterCollection([Microsoft.Exchange.WebServices.Data.LogicalOperator]::And) 
$sfCollection.add($sfRead) 
$sfCollection.add($sfNot) 

回答

0

如果你想要做的主题通配符搜索,那么我会建议你使用AQS的查询,而不是https://msdn.microsoft.com/en-us/library/office/dn579420(v=exchg.150).aspx。 SearchFilters不支持包含通配符的ContainsSubString过滤器,它将查找最接近的部分字符串匹配https://msdn.microsoft.com/en-us/library/office/dd633645(v=exchg.80).aspx

+0

我试图在ContainsSubString上使用AQS关键字,但是我无法将它添加到上面使用的SearchFilters上 – Pepi0

+0

您不能这样做,您必须使用QueryString来代替搜索过滤器。如果某件事不起作用,则显示不起作用的代码 –