提问人:Adam J. Kessel 提问时间:11/16/2023 最后编辑:Adam J. Kessel 更新时间:11/16/2023 访问量:39
使用 PowerShell + Microsoft.Search.Interop 从 Windows 桌面搜索索引中排除 PST
Exclude PSTs from Windows Desktop Search Index with PowerShell + Microsoft.Search.Interop
问:
我有十几个使用第三方工具 (X1) 编制索引的大型历史 Outlook PST。我试图避免将它们添加到 Windows 桌面搜索中,因为当索引包含数百万个项目时会出现性能和稳定性问题。我没有在 Outlook 中打开它们,因此通常我不希望它们被抓取和索引,但由于第三方工具创建与每个 PST 对应的 Outlook 配置文件,因此 WDS 似乎仍在对它们进行爬网和索引,即使它们从未在 Outlook 中打开。
我正在尝试使用 Microsoft.Search.Interop 手动将它们从索引中排除。该接口的文档是有限的,尤其是通过示例。我编写了以下代码(一个 PST 的简化示例),我认为应该排除这些 PST,但它们仍在被抓取。
任何关于如何解决问题或缩小问题的想法?有Microsoft.Search.Interop专家吗?
Add-Type -path "Microsoft.Search.Interop.dll"
$sm = New-Object Microsoft.Search.Interop.CSearchManagerClass
$catalog = $sm.GetCatalog("SystemIndex")
$crawlman = $catalog.GetCrawlScopeManager()
$crawlman.AddUserScopeRule("mapi16://{S-1-5-21-96414999-1499730031-444732941-29377}/archive2022($17228913)",$false,$true,$null)
$crawlman.SaveAll()
我还尝试了 AddDefaultScopeRule 而不是 AddUserScopeRule 等变体,并在 mapi16:// URL 模式中使用通配符。当我添加通配符时(例如,、或在 PST 名称之后),我没有看到规则实际上出现在规则集中。*
.*
(*)
(.*)
$guidstring
答: 暂无答案
评论