我是新来的,希望有人能帮助我!
我必须删除超过x个月且具有nodejs-sdk
的电子邮件,我对Powershell感到疯狂,这是问题所在:
subject:test
1)->不起作用(项目计数0)
$time = (Get-Date).AddDays(33).ToShortDateString()
$Varible = "test"
$Search = [scriptblock]::create("{received<=$($till) AND subject:$Varible}")
echo $search
## Result: 'received<=9/1/2018 AND subject:1234'
2)工作:
Search-Mailbox -Identity s@test.at -searchquery "$($search)" -DeleteContent
变量搜索正是其在上方搜索邮箱1行中设置的输出。
提前
答案 0 :(得分:0)
-SearchQuery
需要String
,而不是ScriptBlock
(check the documentation):
SearchQuery参数指定搜索字符串或使用关键字查询语言(KQL)格式化的查询。
因此,您的查询应如下所示:
[string]$Search = "received<=$time AND subject:$Varible"
此外,针对您提供的代码的其他一些评论:
$time
,并在查询中使用了$till
AddDays(33)
会产生将来的日期,您应该使用AddDays(-33)
String
通常不是一个好习惯,因为您无法对其执行其他操作。但是,在这种特定情况下,当您最终向命令提供String
时,转换就可以了答案 1 :(得分:0)
嗨,请尝试使用支持的日期间隔:
https://docs.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference 表4.日期间隔保留关键字
日期间隔名称说明
今天表示从当天开始到当天结束的时间。
昨天 表示从一天的开始到当天的一天结束之间的时间。
这周 表示从当前周开始到当前周结束的时间。要确定一周中的第一天,必须考虑制定查询文本的区域性。
本月 表示从当月初到当月底的时间。
上个月 表示当前月份之前的整个月份。
今年 表示从当年年初到当年年底的时间。
去年 表示当前年份之前的整个年份。
-SearchQuery 'sent:"last month"'