gpt4 book ai didi

c# - 如何使用 PowerShell 重建 Windows 搜索索引?

转载 作者:可可西里 更新时间:2023-11-01 10:33:39 28 4
gpt4 key购买 nike

由于我们没有找到解决不断增长的 Windows 搜索数据库的任何方法(即使在 Microsoft 的帮助下也没有),我们决定在数据库达到特定限制时通过 SCOM 定期重建数据库。这与 Windows Server 2012 R2 相关。

因此我需要一个调用 Reset 的 PowerShell 脚本或 Reindex属于 ISearchCatalogManager 的方法界面。

到目前为止,我想出了以下内容:

# Load DLL containing classes & interfaces
Add-Type -path "C:\Temp\SearchIndex\Microsoft.Search.Interop.dll"

# Create new ISearchManager object
$sm = New-Object Microsoft.Search.Interop.ISearchManager

# should return ISearchCatalogManager object
$catalog = $sm.GetCatalog("SystemIndex")

# Call the method
$catalog.Reindex()

然而,这会引发以下异常:

New-Object : A constructor was not found. Cannot find an appropriate constructor for type Microsoft.Search.Interop.ISearchManager.
At C:\Users\myuser\Desktop\test.ps1:8 char:6
+ $sm = New-Object Microsoft.Search.Interop.ISearchManager
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand

我在这里做错了什么?

最佳答案

我原来使用的是 Microsoft.Search.Interop.dll 的过时版本。

我是这样解决的:

首先下载Windows Search 3.x SDK来自微软。忽略有关系统要求的部分。所需的 DLL 也可以在 2012 R2 上使用(很可能在 8.1 上)。然后使用下面的 PowerShell 代码重置搜索索引。

# Load DLL containing classes & interfaces
Add-Type -path "C:\Temp\SearchIndexSdk\Microsoft.Search.Interop.dll"

# Provides methods for controlling the Search service. This
# interface manages settings and objects that affect the search engine
# across catalogs.
#
# https://msdn.microsoft.com/en-us/library/bb231485(v=vs.85).aspx
$sm = New-Object Microsoft.Search.Interop.CSearchManagerClass

# Retrieves a catalog by name and creates a new ISearchCatalogManager
# object for that catalog.
$catalog = $sm.GetCatalog("SystemIndex")

# Resets the underlying catalog by rebuilding the databases
# and performing a full indexing.
#
# https://msdn.microsoft.com/en-us/library/bb266414(v=vs.85).aspx
$catalog.Reset()

关于c# - 如何使用 PowerShell 重建 Windows 搜索索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39535442/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com