管理者権限を持つリモートコンピューター(JavaScript / JScript、WMIC、ダウンロードされたWMIクエリツールから-違いはありません)に対していくつかの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を使用して、適切な場合はJScriptを使用してソートされていると確信して\\
おり、基本的な呼び出しを使用しvar wmiResults = wmi.ExecQuery(wql, 'WQL', 32);
て結果セットを取得しています。
ローカルマシンで実行される同等のバッチコマンドは、はるかに多くの結果を返します。
for /r %A in (db,conf,hooks,locks) do @if exist "%~A" echo %~A
ある種のキャッシュやページングが行われている、またはインデックスを再構築する必要があるようなものですが、キャッシュを更新するか、すべての結果を取得するように指示する場所がわかりません。
ヘルプ!!