5

我正在尝试找到一种在 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)

谢谢!

4

0 回答 0