Я выполняю некоторые запросы WMI к удаленному компьютеру (из JavaScript / JScript, WMIC, загруженного инструмента запросов WMI - это не имеет значения), к которому у меня есть права администратора.
Запросработает против класса Win32_Directory и пытается найти все папки на целевом сервере, которые называются «db», «hooks», «conf» или «locks», но не возвращает все папки;он получает только около 150 из них.
Я попытался выполнить следующие запросы:
SELECT drive, path, filename
FROM Win32_Directory
WHERE filename = 'db'
OR filename = 'conf'
OR filename = 'hooks'
OR filename = 'locks'
и:
SELECT drive, path, filename
FROM Win32_Directory
WHERE name LIKE '%\\db'
OR name LIKE '%\\conf'
OR name LIKE '%\\locks'
OR name LIKE '%\\hooks'
или в WMIC (с локальной машины):
wmic fsdir where (name like '%\\db' or name like '%\\conf' or name like '%\\hooks' or name like '%\\locks') get drive,path,name
Я почти уверен, что у меня выбрано экранирование с использованием \'
и \\
, где это уместно для JScript, и я использую базовый вызов var wmiResults = wmi.ExecQuery(wql, 'WQL', 32);
, чтобы получитьнабор результатов.
Эквивалентная пакетная команда, запускаемая на локальном компьютере, дает гораздо больше результатов:
for /r %A in (db,conf,hooks,locks) do @if exist "%~A" echo %~A
Это похоже на то, что происходит какое-то кэширование или разбиение на страницы или требуется индексвосстановление, но я не знаю, с чего начать, чтобы он обновлял кэш или извлекал все результаты.
Help !!