0
を追加するとき、「無効なパラメータ」私は、リモートのWindowsホスト上のWMIクエリを実行するには、次のJavaScriptを持っている:SWbemServices.ExecQuery - WHERE句
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
は、リモートhost
のログイン認証情報です、query
は実行されるWQLクエリです。
これは、WHERE句をWQLクエリに追加するまではすべて正常に動作します。例えば、
SELECT * FROM Win32_LogicalDisk
は、期待される結果をもたらすが、
SELECT * FROM Win32_LogicalDisk WHERE DriveType=3
は "無効なパラメータ" エラー(wbemErrInvalidParameter/0x80041008)をもたらすであろう。
WHERE句が使用されている数多くの例が見つかりました。サポートされていない情報は見つかりませんでした。私はここに何かを逃していますか
該当する場合、このスクリプトを実行しているホストはWindows XP Professional SP2です。
クエリ文字列はどのように構築されますか?有効なクエリ文字列が含まれているかどうかを確認するために値をエコーするなど、いくつか試してみることができます。 wbemtest.exeを使用してクエリを実行することもできます。 –
ああ、これは困惑しています...以前に「等号」記号が含まれているため、クエリ文字列が実際には解析されていたため、実際には中断されました。 ありがとうございました!私はこれが閉じられると信じています。 – pdinklag
あなたの解決策を以下の回答として投稿し、それを受け入れたものとしてマークしてください。 – Helen