我正在尝试找到一种在Windows搜索索引上运行SQL查询的方法。
使用.NET或Powershell可以很容易地实现这一点,但无论我做什么,我似乎无法在Python中使用它。
我尝试使用PyODBC并使用JET4驱动程序,但遇到了一大堆错误。 然后,我尝试使用win32con客户端进行ADO连接,但这并没有成功。
我尝试将提供商说明为某些地方提供的MSIDXS.1
或Search.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)
谢谢!