可以通过编程方式管理 Windows 搜索索引。
您可以使用以下模式从搜索索引中排除文件夹:
file:///C:\*\packages\
匹配名为“packages”的文件夹及其内容
file:///D:\*\obj\
匹配名为“obj”的文件夹及其内容
我在 Windows 11 21h2 下使用 C# 成功测试了这些模式。
添加新规则的示例 (Powershell)
# [wsearch-add-rule.ps1]
# Source: https://stackoverflow.com/questions/13390514/how-to-add-a-location-to-windows-7-8-search-index-using-batch-or-vbscript/13454571#13454571
Add-Type -path ".\Microsoft.Search.Interop.dll"
$sm = New-Object Microsoft.Search.Interop.CSearchManagerClass
$cat = $sm.GetCatalog("SystemIndex")
$csm = $cat.GetCrawlScopeManager()
$csm.AddUserScopeRule("file:///D:\*\obj\", $true, $false, $null)
$csm.SaveAll()
列出现有规则的示例 (Powershell)
# [wsearch-list-rules.ps1]
# Source: https://powertoe.wordpress.com/2010/05/17/powershell-tackles-windows-desktop-search/
Add-Type -path "Microsoft.Search.Interop.dll"
$sm = New-Object Microsoft.Search.Interop.CSearchManagerClass
$cat = $sm.GetCatalog("SystemIndex")
$csm = $cat.GetCrawlScopeManager()
$scopes = @()
$begin = $true
[Microsoft.Search.Interop.CSearchScopeRule]$scope = $null
$enum = $csm.EnumerateScopeRules()
while ($scope -ne $null -or $begin) {
$enum.Next(1,[ref]$scope,[ref]$null)
$begin = $false
$scopes += $scope
}
$scopes|ogv
Microsoft.Search.Interop.dll
可以在 web 存档上的旧 Windows Search 3x SDK 中找到所需的
资源 :