Windows搜索、SQL查询、本地/远程

本文关键字:远程 本地 SQL 搜索 Windows 查询 | 更新日期: 2023-09-27 18:01:09

我已经在Windows 2012上安装了Windows搜索服务功能。现在我正在测试该表单,它应该将查询从Windows 2008发送到Windows 2012目录。Windows 2008也安装了Windows搜索服务,无法安装/注册数据库驱动程序。

该表单只能在Windows 2012上本地正常工作但从Windows 2008到Windows 2012(远程访问目录(都不起作用,Wireshark不显示传出查询。

查询本地目录(成功(:

("SELECT System.FileName,System.ItemPathDisplay,System.DateCreated FROM SystemIndex WHERE SCOPE='file:C:/test'", SearchConnect);

查询远程目录Windows 2008>Windows 2012(未成功(

("SELECT System.FileName,System.ItemPathDisplay,System.DateCreated FROM MyServer.SystemIndex WHERE SCOPE='file:C:/test'", SearchConnect);
("SELECT System.FileName,System.ItemPathDisplay,System.DateCreated FROM SystemIndex WHERE SCOPE='file://MyServer/C:/test'", SearchConnect);

部分代码-仅选择在测试期间被修改

 {
    string connectionString = "Provider=Search.CollatorDSO.1;Extended Properties='Application=Windows'";
    OleDbConnection SearchConnect = new OleDbConnection();
    SearchConnect.ConnectionString = connectionString;
    OleDbDataAdapter SearchAdpt = new OleDbDataAdapter("SELECT System.FileName,System.ItemPathDisplay,System.DateCreated FROM SystemIndex WHERE SCOPE='file:C:/test'", SearchConnect);
    SearchAdpt.Fill(searchResults);
  }

参考

MSDN-SCOPE和DIRECTORY谓词

Windows搜索、SQL查询、本地/远程

您要求本地服务器在本地系统上启动搜索,由另一台服务器完成。。。

使用使用您的声明

SELECT * FROM OPENQUERY(externalServer,'script') T

在您的案例中翻译为:

"SELECT * FROM OPENQUERY(MyServer, ' SELECT System.FileName, System.ItemPathDisplay, System.DateCreated FROM SystemIndex WHERE SCOPE=''file:C:/test'' ') T"