如何从代码中获取 Windows 索引服务状态?

How to get Windows Indexing Service state from code?

如何查找,如何从代码中读取Windows Indexing Service 状态(indexing state)? OS 是 Windows 服务器 2012 R2。

这可以通过使用 Microsoft.Search.Interop 我从这里得到:https://www.nuget.org/packages/tlbimp-Microsoft.Search.Interop/

然后使用来自https://docs.microsoft.com/en-us/windows/win32/api/searchapi/ne-searchapi-catalogstatus的文档很容易获得索引状态。

    Dim status As _CatalogStatus
    Dim reason As _CatalogPausedReason
    Dim manager As CSearchManager = New CSearchManager()
    Dim catalogManager As ISearchCatalogManager = manager.GetCatalog("SystemIndex")
    catalogManager.GetCatalogStatus(status, reason)

我在 Windows Server 2012 R2 上所做的一切。