PowerShell搜索 - 邮箱搜索查询故障

时间:2015-04-21 18:04:08

标签: powershell exchange-server

尝试使用PowerShell脚本编写程序。我想在一段时间后从收件箱中删除语音留言。代码获取组织内的所有邮箱并将其管道到Search-Mailbox。然后我需要使用-searchquery选项查询邮箱。它似乎不喜欢我如何将Date变量放入查询。

$Date = (Get-Date).AddDays(-19)
$Test = $Date.toString("MM/dd/yyyy")
$SB = [scriptblock]::create("Sent: $Test AND Attachment:`"VoiceMessage.wav`"")
Get-Mailbox | Search-Mailbox -TargetMailbox "Example" -TargetFolder "Searching" -SearchQuery $SB -LogOnly -LogLevel Full

编辑1:执行脚本时,PowerShell会声明以下内容:

  

Search-Mailbox:输入对象不能绑定到任何参数   对于该命令要么是因为该命令没有采用管道   输入或输入及其属性与任何一个都不匹配   采用管道输入的参数。在线:3个字符:25

编辑二:在我的问题中将代码调整为有效的代码。感谢所有人的帮助!

1 个答案:

答案 0 :(得分:0)

根据Message Properties and Search Operators for In-Place eDiscoveryMessage Properties Indexed by Exchange Search的一个相当小的子集),[('no RN', 'estar VASI1S0', 'lavar VMP00SM'),('estar VAIP2S0','condicionar VMP00SM', 'alla VASI1S0')] 语法有点偏离。

  

使用与property:value格式匹配的语法。值不区分大小写,并且在运算符后不能有空格。如果有空格,您的预期值将只是全文搜索。例如:pilarp搜索“pilarp”作为关键字,而不是搜索发送给pilarp的邮件。

减少非绝对必需的引号将有助于避免需要转义它们。它还支持其他运营商比较日期等内容。 试试-SearchQuery

-SearchQuery

我自己的租户"Attachment:VoiceMessage.wav AND Received<=$Date2" 要注意的一件事情根本不会搜索附件,尽管附件是Search-Mailbox的“支持”关键字。我不得不求助于在体内找到单词来获得理想的结果。我确实等了几个小时,看看它是否可能是慢速索引,但没有任何改变。也许你会有更好的运气。

另一个注意事项this page提及:

  

如果要从中删除邮件的邮箱具有单个项目   启用恢复后,您必须先禁用该功能。

这不是绝对的要求。如果不关闭它,用户可能能够恢复语音邮件。对你的情况来说可能没什么大不了的。