2015-07-06 2 views
0

Я установил функцию службы поиска Windows в Windows 2012. Теперь я тестирую форму, которая должна отправлять запрос из Windows 2008 в каталог Windows 2012. В Windows 2008 также установлена ​​служба поиска Windows, чтобы установить/зарегистрировать драйвер db.Поиск в Windows, SQL-запрос, локальный/удаленный

Форма работает правильно только локально на 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 and DIRECTORY Predicates

ответ

0

Вы задаете локальный сервер, чтобы начать поиск в локальной системе должно быть сделано другим сервером ...

Используйте оператор с

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" 
Смежные вопросы