加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何使用Powershell搜索Windows搜索索引文件

发布时间:2020-12-13 22:33:35 所属栏目:Windows 来源:网络整理
导读:我不得不在我的网络上找到一些文件,它们由 Windows搜索服务编制索引.在资源管理器搜索栏上输入模式大约10秒左右,但是当我使用以下命令时,搜索通常需要几分钟(2到3分钟) gci -Recurse -Filter "VaR*.xlsb" 有没有办法利用索引文件数据库来加快我的搜索速度?
我不得不在我的网络上找到一些文件,它们由 Windows搜索服务编制索引.在资源管理器搜索栏上输入模式大约10秒左右,但是当我使用以下命令时,搜索通常需要几分钟(2到3分钟)

gci -Recurse -Filter "VaR*.xlsb"

有没有办法利用索引文件数据库来加快我的搜索速度?

解决方法

我发现我的答案适应 vbs script到Powershell,有代码:

Function Search {
param (  
    [Parameter(ValueFromPipeline = $true)][string]$Path,[Parameter(Mandatory=$true)][string]$Pattern)  

    if($Path -eq ""){$Path = $PWD;} 

    $pattern = $pattern -replace "*","%"  
    $path = $path + "%"

    $con = New-Object -ComObject ADODB.Connection
    $rs = New-Object -ComObject ADODB.Recordset

    $con.Open("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';")
    $rs.Open("SELECT System.ItemPathDisplay FROM SYSTEMINDEX WHERE System.FileName LIKE '" + $pattern + "' AND System.ItemPathDisplay LIKE '" + $path + "'",$con)

    While(-Not $rs.EOF){
        $rs.Fields.Item("System.ItemPathDisplay").Value
        $rs.MoveNext()
    }
}

这种方式很快.我根据David指出的答案进行了测试,它的速度提高了3倍,但这个答案仅适用于索引文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读