配置:
版本 Windows 11 Pro,版本 21H2 操作系统内部版本 22000.348 体验 Windows 功能体验包 1000.22000.348.0 Microsoft® Outlook® 2019 MSO(版本 2110 内部版本 16.0.14527.20270)64 位,家庭和商业 2019
奇怪的 Windows Search 问题,示例步骤如下:
- 启动电脑
- 创建测试文件夹 c:\mytest 并创建 testfile.txt,内容如下:bbbccc
- 将此文件夹添加到 Windows 操作系统高级搜索选项中用于索引的包含位置,检查 MS Search 是否找到字符串 bbbccc(在我的情况下,它在创建 testfile.txt 后立即找到)=> 因此 MS Search 可以正常工作,因为它立即找到了带有“bbbccc”字符串的文件。
- 打开 Outlook 2019
- 下载新电子邮件
- 在 Outlook 搜索栏中搜索其中一封新下载的电子邮件
- 我的搜索没有任何结果!
- 额外测试:我使用另一个电子邮件地址并从该电子邮件发送一封测试电子邮件,主题为“测试电子邮件”,正文中的内容为字符串“xxxyyyzzz”
- 我等待电子邮件到达/在 Outlook 中下载这封新电子邮件,然后搜索 xxxyyyzzz 但...没有结果!
- 我使用 Powershell 脚本检查索引,以仔细检查新下载的电子邮件是否不在 WSearch 索引子系统中(Powershell 脚本粘贴在此问题的底部)
- 确实,xxxyyyzzz 测试字符串没有显示在系统索引中……(Powershell 脚本零结果)
- 当我重新启动时:新电子邮件显示在 Powershell 脚本中,当然 Outlook 也在 Outlook 搜索栏中找到 xxxyyyzzz 测试字符串电子邮件
- 我不是 WSearch 专家,但据我所知,Outlook 不涉及抓取,Outlook 应该通知 WSearch 的收集者。
- 如果假设 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