首页 > 解决方案 > Powershell - Outlook 高级搜索不通过组织框递归

问题描述

我正在尝试编写一个小脚本,以查找组织框中与给定搜索词匹配的所有电子邮件并显示每个结果的完整路径。虽然我在我的个人收件箱中工作并通过所有子文件夹递归,但当我尝试在 Org 框上使用它时,它只搜索当前目录并且不递归。

使用 Org 框时我是否缺少一些独特的东西?

$OL = New-Object -ComObject Outlook.Application
$NS = $OL.GetNameSpace('MAPI')
$MB = $NS.createRecipient('SomeOrgBox@mail.com')
if ($MB.Resolve) {
    $Inbox = $NS.GetSharedDefaultFolder($MB,[Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
} else {
    Write-Warning "Unable to access inbox
    "
    pause
    exit
}
Register-ObjectEvent -InputObject $OL -EventName "AdvancedSearchComplete" - Action {
    if ($Args.Results) {
        Write-Host " - Results -
        "
        Foreach ($Result in $Args.Results) {
            Write-Host $Result.Subject
            Write-Host $Result.Parent.FolderPath
        }
        Write-Host ""
        Write-Host " - End of results -"
    } else {
        Write-Host " - No Results found -"
    }
    Write-Host ""
}

Function Search-Inbox {
    $Search = $OL.AdvancedSearch("'"+$Inbox+"'", "urn:schemas:httpmail:subject like '%"+$Query+"%'", $true)
}

$Query = Read-Host " Enter Search Term "

Search-Inbox

编辑:澄清一下,这将在 Windows 机器上使用,第三方工具不是一个选项。

此外,经过一些测试,似乎将 Org 框添加到 Outlook 中的方式在此问题中发挥了作用。如果该帐户通过您的个人帐户的高级选项与您关联,则搜索不会递归。如果通过“添加帐户”对话框递归将组织框添加为附加电子邮件帐户,则可以正常工作。如果我是唯一一个使用它的人,我可以更改我设置帐户的方式,但由于其他人也必须使用它,这不是最理想的解决方案。现在,我将继续使用它,直到找到以其他方式设置的帐户的解决方案。

标签: powershelloutlook

解决方案


推荐阅读