我正在对远程计算机运行一些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
就像有某种缓存或分页正在进行,或索引需要重建,但我不知道从哪里开始告诉它刷新缓存或检索所有结果。
帮助!!