如何强制 Outlook 2019 将电子邮件存储中的更改通知给 Wsearch 的收集器?

如何强制 Outlook 2019 将电子邮件存储中的更改通知给 Wsearch 的收集器?

配置:

版本 Windows 11 Pro,版本 21H2 操作系统内部版本 22000.348 体验 Windows 功能体验包 1000.22000.348.0 Microsoft® Outlook® 2019 MSO(版本 2110 内部版本 16.0.14527.20270)64 位,家庭和商业 2019

奇怪的 Windows Search 问题,示例步骤如下:

  1. 启动电脑
  2. 创建测试文件夹 c:\mytest 并创建 testfile.txt,内容如下:bbbccc
  3. 将此文件夹添加到 Windows 操作系统高级搜索选项中用于索引的包含位置,检查 MS Search 是否找到字符串 bbbccc(在我的情况下,它在创建 testfile.txt 后立即找到)=> 因此 MS Search 可以正常工作,因为它立即找到了带有“bbbccc”字符串的文件。
  4. 打开 Outlook 2019
  5. 下载新电子邮件
  6. 在 Outlook 搜索栏中搜索其中一封新下载的电子邮件
  7. 我的搜索没有任何结果!
  8. 额外测试:我使用另一个电子邮件地址并从该电子邮件发送一封测试电子邮件,主题为“测试电子邮件”,正文中的内容为字符串“xxxyyyzzz”
  9. 我等待电子邮件到达/在 Outlook 中下载这封新电子邮件,然后搜索 xxxyyyzzz 但...没有结果!
  10. 我使用 Powershell 脚本检查索引,以仔细检查新下载的电子邮件是否不在 WSearch 索引子系统中(Powershell 脚本粘贴在此问题的底部)
  11. 确实,xxxyyyzzz 测试字符串没有显示在系统索引中……(Powershell 脚本零结果)
  12. 当我重新启动时:新电子邮件显示在 Powershell 脚本中,当然 Outlook 也在 Outlook 搜索栏中找到 xxxyyyzzz 测试字符串电子邮件
  13. 我不是 WSearch 专家,但据我所知,Outlook 不涉及抓取,Outlook 应该通知 WSearch 的收集者。
  14. 如果假设 13 是正确的……那么这里发生了什么?a. Outlook 没有通知 WSearch 的收集器吗?b. 或者 Outlook 正确通知但 Wsearch 失败?C. 有没有办法检查 WSearch 是否正在从 Outlook 接收 mapi 通知(= 我们可以“监听”或监控 WSearch 的收集器接收到的内容吗?)

我尝试了通常的急救解决方案:修复在线 Office、重建索引……结果相同。

请注意:我办公室里的不同 PC 都存在同样的问题,所有 PC 都升级到了 Win11 Pro 64 位。我在 Win10 Pro 64 位上从未遇到过此问题……

Powershell 脚本在 WSearch Index 数据库中搜索 xxxyyyzzz 字符串:

function Invoke-WindowsSearch
{
    param
    (
     [Parameter()][string] $SearchString = ""
    )
    $SearchString = $SearchString.Replace("'","''")
    $query   = "select System.Message.datereceived, System.ItemNameDisplay from systemindex where contains('$SearchString')"
    $provider = "Provider=Search.CollatorDSO.1;Extended?PROPERTIES='Application=Windows'"
    $adapter  = new-object System.Data.OleDb.OleDBDataAdapter -Argument $query, $provider
    $results = new-object System.Data.DataSet

    $adapter.Fill($results)
    $results.Tables[0]
}

Invoke-WindowsSearch xxxyyyzzz

相关内容