サーバー上でローカルに実行している非常に単純な WMI テスト スクリプトを使用して、WMI データを取得している問題を診断しています。
基本的に、このマシンで (ローカルに) 実行したすべての0x80041017
WMI クエリはエラー コードで失敗します。
Option Explicit
Dim WmiQuery
WmiQuery = "SELECT * FROM Win32_Processor"
Dim objSWbemLocator
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Dim objWMIService
Set objWMIService = objSWbemLocator.ConnectServer("localhost", "root\cimv2")
Dim results
Set results = objWMIService.ExecQuery (WmiQuery)
Dim row
For Each row in results
Next
まだプロパティを表示しようとしていませんが、16 行目で失敗しますFor Each row in results
。
コンソールで実行した出力は次のとおりです。
c:\test>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
c:\test\test.vbs(16, 1) (null): 0x80041017
そのクエリを wbemtest で実行すると、同じクエリが他のサーバーで実行されていても、「無効なクエリ」という説明が表示されます。WMIに何か登録されていないのでしょうか?