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