使用Python查询Microsoft搜索索引

时间:2016-08-02 17:38:25

标签: python ado windows-search

我正在尝试找到一种在Windows搜索索引上运行SQL查询的方法。

使用.NET或Powershell可以很容易地实现这一点,但无论我做什么,我似乎无法在Python中使用它。

我尝试使用PyODBC并使用JET4驱动程序,但遇到了一大堆错误。 然后,我尝试使用win32con客户端进行ADO连接,但这并没有成功。

我尝试将提供商说明为某些地方提供的MSIDXS.1Search.CollatorDSO,甚至尝试直接访问EDB文件,但没有运气。

有没有人设法这样做,或知道可能是什么问题?

作为参考,我附加了一个指向执行此操作的Powershell和C#脚本示例的链接: - https://www.petri.com/how-to-query-the-windows-search-index-using-sql-and-powershell - https://msdn.microsoft.com/en-us/library/windows/desktop/ff684395(v=vs.85).aspx

我可以使用VB脚本并以查询作为参数来处理它,但对我来说感觉非常蹩脚......

编辑: 我现在似乎连接到正确的数据库,但得到一个错误:

我的代码:

    conn = win32com.client.Dispatch('ADODB.Connection')
    #DSN = ('Provider=MSIDXS.1;Data Source=SYSTEMINDEX;')
    DSN = ('Provider=MSIDXS.1;Data Source=myCatalog;')
    conn.Open(DSN)
    rs = win32com.client.Dispatch(dispatch='ADODB.Recordset')
    strsql = r'SELECT 

错误:

Traceback (most recent call last):
File "E:/Automation Scripts/123456/searchIndexQuery.py", line 48, in <module>
searchIndexConnector().ado()
File "E:/Automation Scripts/123456/searchIndexQuery.py", line 42, in ado
rs.Open(strsql, conn, 1, 3)
File "<COMObject ADODB.Recordset>", line 4, in Open
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft OLE DB Provider for Indexing Service', u"Incorrect syntax near '.'.  Expected ',', '.', FROM. SQLSTATE=42000 ", None, 0, -2147217900), None)

谢谢!

0 个答案:

没有答案