使用PowerShell搜索Outlook电子邮件

时间:2017-01-12 16:00:44

标签: powershell search outlook

我在Outlook中搜索电子邮件时遇到问题。

这有效:

Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$e=$Outlook.AdvancedSearch("Inbox","urn:schemas:httpmail:subject='RECHERCHE QUI MARCHE'",$False,'test')
$e.results

给我结果确定。

但如果我改变范围,它就不起作用。

PS C:\Users\etarai> $e=$Outlook.AdvancedSearch('\\xx@xx.com\Éléments supprimés',"urn:schemas:httpmail:subject='RECHERCHE QUI MARCHE'",$False,'test')

其中'\\ xx@xx.com \Élémentssupprimés'是FolderPath。 在msdn中,范围应该是具有folderpath

的字符串
  

范围类型:System.String

     

搜索范围。例如,文件夹的文件夹路径。它   建议将文件夹路径括在单引号中。   否则,如果文件夹,搜索可能不会返回正确的结果   path包含特殊字符,包括Unicode字符。至   指定多个文件夹路径,将每个文件夹路径括起来   引号并用逗号分隔单引号文件夹路径。

如何搜索已删除的电子邮件,已发送的电子邮件或存档? 你有找到范围的解决方案吗?当我尝试将folderpath放在范围内时,它不起作用。

其他问题,是否有可能看到研究何时完成?

2 个答案:

答案 0 :(得分:2)

whouaaaa我找到了答案!! 谢谢你的暗示sodawillow!

对于带有folderpath的范围 双引号和单引号:

"' \ xx@xx.com \已删除的项目'"。可以与pst文件中的存档一起使用:)

答案 1 :(得分:1)

像“匹配”一样工作 小心并测试出现,*不解释

$ Term ='测试' $ Scope ='收件箱'

$ Outlook = New-Object -ComObject Outlook.Application $ Emails = $ Outlook.AdvancedSearch($ Scope,“urn:schemas:httpmail:subject LIKE'%$ Term%'”,$ true)

Start-Sleep -Seconds 10

$ Emails.Results |选择对象 - 属性主题