Если я включаю следующие шаблоны через gpedit.msc, они применяются правильно:
Computer Configuration\Administrative Templates\Windows Components\Search
Default excluded paths
Default indexed paths
Prevent indexing certain paths
Однако при настройке соответствующих ключей реестра они полностью игнорируются (даже после перезагрузки), за исключением случаев, когда я применяю один из них позже вручную. Похоже, служба WSearch (SearchIndexer.exe) не читает политики, пока какая-то функция не запустит ее.
Например, скажем, я хочу исключить C:\Users
, с помощью этого пакетного сценария:
net stop WSearch && sc config WSearch start= disabled
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows Search\DefaultExcludedPaths" /v "%SYSTEMDRIVE%\Users" /t REG_SZ /d "%SYSTEMDRIVE%\Users" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows Search\CurrentPolicies\DefaultExcludedPaths" /v "%SYSTEMDRIVE%\Users" /t REG_SZ /d "%SYSTEMDRIVE%\Users" /f
sc config WSearch start= demand && net start WSearch
Он не применяется, если, скажем, я не добавлю еще один каталог в Default indexed paths
через редактор групповой политики.
Я успешно удалил это правило, удалив соответствующий ключ в HKLM\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules
но это немного беспорядочно, потому что вам нужно редактировать разрешения и тому подобное. Это был бы более чистый и стандартный способ добиться того же.