0

リモートWindowsホストでWMIクエリを実行するための次のJavaScriptがあります。

var wmiLocator = WScript.CreateObject("WbemScripting.Swbemlocator");
var wmiService = wmiLocator.ConnectServer(host, "root\\cimv2", user, pass);

var items = wmiService.ExecQuery(query);

for(var e = new Enumerator(items); ! e.atEnd(); e.moveNext())
{
    WScript.StdOut.Write(e.item().GetObjectText_());
}

userおよびpassはリモートのログイン資格情報でありhostqueryは実行されるWQLクエリです。

これは、WHERE句をWQLクエリに追加するまではすべて正常に機能します。例えば、

SELECT * FROM Win32_LogicalDisk

期待どおりの結果が得られますが、

SELECT * FROM Win32_LogicalDisk WHERE DriveType=3

「無効なパラメータ」エラーが発生します(wbemErrInvalidParameter / 0x80041008)。

WHERE句が使用されている例を数多く見つけましたが、サポートされていないという情報は見つかりません。ここで何かが足りませんか?

関連する場合、このスクリプトを実行するホストは、SP2を搭載したWindowsXPProfessionalです。

4

1 に答える 1

0

ヘレンがほのめかしたように、私はこれに自分で答えています。

クエリ文字列は、スクリプトの前半で行った解析によって変更され、構文的に無効になったため、無効なパラメータエラーが発生しました。

于 2012-07-05T08:10:06.233 に答える