我正试图通过编程将一个位置(范围)添加到我的Windows8搜索索引中,经过一些谷歌搜索,我发现了以下代码:
Set objISAdm = CreateObject("Microsoft.ISAdm")
Set objCatalog = objISAdm. GetCatalogByName("MyCatatlog")
Set objScope= objCatalog.AddScope("C:myfiles",False)
objScope.Alias = "MyCatalogScope"
不幸的是,800A01AD
错误提示无法创建对象Microsoft.ISAdm
;经过进一步的挖掘,上面的代码似乎不适用于Windows8上的新版本的WindowsSearch。
有人知道如何使用VB脚本或从命令行做到这一点吗?大概在Windows7下工作的东西也会在Windows8上工作吧?
#Code copied from "Powershell Tackles Windows Desktop Search" http://powertoe.wordpress.com/2010/05/17/powershell-tackles-windows-desktop-search/
#Microsoft.Search.Interop.dll is needed, download from http://www.microsoft.com/en-us/download/details.aspx?id=7388
#Load the dll
Add-Type -path "D:UnattendUserFilesToolsMicrosoft.Search.Interop.dll"
#Create an instance of CSearchManagerClass
$sm = New-Object Microsoft.Search.Interop.CSearchManagerClass
#Next we connect to the SystemIndex catalog
$catalog = $sm.GetCatalog("SystemIndex")
#Get the interface to the scope rule manager
$crawlman = $catalog.GetCrawlScopeManager()
#add scope
$crawlman.AddUserScopeRule("file:///D:*",$true,$false,$null)
$crawlman.SaveAll()
将代码保存为AddScope.ps1,并从提升的cmd控制台运行:
PowerShell Set-ExecutionPolicy Unrestricted -force
PowerShell D:UnattendUserFilesAddScope.ps1
就是这样!
在您提供的代码中,您正试图使用索引服务接口。索引服务在Windows 8中不再可用。来自文件:
从Windows XP起不再支持索引服务从Windows 8起不可用。相反,请使用Windows搜索客户端搜索和用于服务器端的Microsoft search Server Express搜索
如文档所述,您将需要查看Windows搜索。
更新:
我还没有这样做,但为了完成你所寻求的文件状态
在使用任何爬网范围管理器(CSM)接口之前,您必须执行以下先决条件步骤:
- 创建CrawlSearchManager对象并获取其ISearchManager接口
- 为"SystemIndex"调用ISearchManager::GetCatalog以获取ISearchCatalogManager接口的实例
- 调用ISearchCatalogManager::GetCrawlScopeManager以获取ISearchCrawlScoleManager接口的实例
对爬网作用域管理器(CSM)进行任何更改后,必须调用ISearchCrawlScopeManager::SaveAll。此方法不需要参数并在成功时返回S_ OK。
这里有一个例子和另一个例子。
不幸的是,我不认为这可以通过VBScript实现,因为Windows Search API提供的COM接口没有实现IDispatch接口,这允许像VBScript这样的脚本语言通过后期绑定调用COM对象。
它必须来自VBScript,还是可以在.NET中完成?如果它必须来自VBScript,那么一种方法是在.NET中编写包装并将其公开为COM对象。