原因

原因

注:我之前在答案.microsoft.com,到目前为止我还没有收到回复

在尝试调查搜索索引器找不到文件的问题时,我注意到似乎存在搜索根中缺少驱动器的问题。以下细节可能很重要:

  • 该计算机有三个内置驱动器:

    • 操作系统驱动器 C:、SSD、所有常用系统分区
    • 数据驱动器 E:,HDD,两个分区(另一个不需要索引)
    • 数据驱动器 D:,存储空间,一个分区
  • 在 中,列出了以下条目(请注意和驱动器的Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\SearchRootsGUID 似乎相同):DE

    defaultroot://{S-1-5-21-740414505-3273780380-2204535043-1001}/
    file:///C:\[d2ba34b2-ebef-456a-a0d6-8da93b88df93]\
    file:///D:\[3c8e34ff-7776-47f8-abaf-4334ed09d427]\
    file:///E:\[3c8e34ff-7776-47f8-abaf-4334ed09d427]\
    winrt://{S-1-5-21-740414505-3273780380-2204535043-1001}/
    
  • 索引器诊断工具在“搜索根”下列出file:///C:\file:///E:\这与注册表项相矛盾

  • 在“正在索引什么?”下,该工具仅列出以 和 开头的路径C:\E:\其中以 开头的路径实际上E:\是打开的D:\。在“搜索 Windows”下的“设置”应用中,会显示相同的排除路径列表

  • “索引选项”对话框显示 D:\和上的文件夹E:\均已编入索引(单击“修改”时)。在“索引这些位置”视图中,E:\实际上未列出任何位置

  • 搜索模式设置为“经典”

  • 我已经尝试过多次重置搜索索引,既通过“重建索引”,也通过设置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\SetupCompletedSuccessfully0

这是怎么回事?为什么索引器诊断工具令人困惑D:\E:\为什么位置没有E:\出现在要索引的位置列表中?有没有办法将驱动器添加到搜索根目录/让索引器完全重新创建它们?

如果需要任何其他信息,请告诉我

答案1

终于找到了解决这个问题的方法:这个解决方案是基于这个答案,并提供了一些关于如何真正解决这个问题的详细信息。

原因

其中一个驱动器在某个时候被创建为另一个驱动器的克隆。这导致两个驱动器的 GUID 相同,至少就索引器而言(这些是不是标准分区 GUID 或类似)。GUID 存储在 中*:\System Volume Information\IndexerVolumeGuid,因此除了权限问题外,重置它非常简单。

解决方案

这是我为解决这个问题所做的事情:

  • 停止Windows Search服务,并将启动类型设置为Disabled
  • 打开regedit.exe
    • 将值设置SetupCompletedSuccessfullyHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\0
    • 转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\SearchRoots,并删除与冲突驱动器相对应的所有键
  • 下载psexecpsexec -sid cmd,然后使用管理员权限从命令行提示符 运行该命令
    • 新启动的命令行具有系统权限,请小心!
    • D:通过键入(其中D是驱动器的字母)导航到第一个冲突的驱动器
    • System Volume Information通过输入转到文件夹cd "System Volume Information"
    • 通过键入以下内容删除 GUID 文件del IndexerVolumeGuid
    • 对所有发生碰撞的驱动器重复这些步骤
  • 将服务的启动类型设置Windows SearchAutomatic,然后重新启动服务。
  • 搜索索引现在应该正在重建,这次没有任何问题。请注意,包含/排除文件夹的所有设置都已删除,因此您可能需要通过Indexing Options设置面板重新选择它们,方法是按Modify

相关内容