注:我之前在答案.microsoft.com,到目前为止我还没有收到回复
在尝试调查搜索索引器找不到文件的问题时,我注意到似乎存在搜索根中缺少驱动器的问题。以下细节可能很重要:
该计算机有三个内置驱动器:
- 操作系统驱动器 C:、SSD、所有常用系统分区
- 数据驱动器 E:,HDD,两个分区(另一个不需要索引)
- 数据驱动器 D:,存储空间,一个分区
在 中,列出了以下条目(请注意和驱动器的
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\SearchRoots
GUID 似乎相同):D
E
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\SetupCompletedSuccessfully
为0
这是怎么回事?为什么索引器诊断工具令人困惑D:\
?E:\
为什么位置没有E:\
出现在要索引的位置列表中?有没有办法将驱动器添加到搜索根目录/让索引器完全重新创建它们?
如果需要任何其他信息,请告诉我
答案1
终于找到了解决这个问题的方法:这个解决方案是基于这个答案,并提供了一些关于如何真正解决这个问题的详细信息。
原因
其中一个驱动器在某个时候被创建为另一个驱动器的克隆。这导致两个驱动器的 GUID 相同,至少就索引器而言(这些是不是标准分区 GUID 或类似)。GUID 存储在 中*:\System Volume Information\IndexerVolumeGuid
,因此除了权限问题外,重置它非常简单。
解决方案
这是我为解决这个问题所做的事情:
- 停止
Windows Search
服务,并将启动类型设置为Disabled
- 打开
regedit.exe
- 将值设置
SetupCompletedSuccessfully
为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\
0
- 转到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\SearchRoots
,并删除与冲突驱动器相对应的所有键
- 将值设置
- 下载
psexec
psexec -sid cmd
,然后使用管理员权限从命令行提示符 运行该命令- 新启动的命令行具有系统权限,请小心!
D:
通过键入(其中D
是驱动器的字母)导航到第一个冲突的驱动器System Volume Information
通过输入转到文件夹cd "System Volume Information"
- 通过键入以下内容删除 GUID 文件
del IndexerVolumeGuid
- 对所有发生碰撞的驱动器重复这些步骤
- 将服务的启动类型设置
Windows Search
回Automatic
,然后重新启动服务。 - 搜索索引现在应该正在重建,这次没有任何问题。请注意,包含/排除文件夹的所有设置都已删除,因此您可能需要通过
Indexing Options
设置面板重新选择它们,方法是按Modify