0

Win2k SP4 で次の VBScript コードを実行しようとしています。

strComputer = "."    
Set oWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

XP と Win7 では問題なく動作しますが、この 2k ボックスでは次のエラーが発生します。

C:\test_wmi.vbs(3, 1) (null): 0x8004100E

エラーの説明: 指定された名前空間が見つかりません。

次のコードを使用して、ルートの名前空間を照会すると、次のようになります。

strComputer = "."

Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root")
Set colNameSpaces = objSwbemServices.InstancesOf("__NAMESPACE")

For Each objNameSpace In colNameSpaces
 Wscript.Echo objNameSpace.Name
Next

私はこれを得る:

DEFAULT
SECURITY
WMI
directory
aspnet

私が読んだ限りでは、CIMV2 名前空間がそこにあるはずです。何か案は???

ありがとう!

ヨッチ。

4

3 に答える 3

1

最後に、私にとってうまくいったのは、WMI リポジトリを再構築することでした。これは私がしたことです:

  • WMI サービスを停止します (net stop winmgmt)
  • %windows%/system32/wbem に移動します (私の win2k では winnt、XP では windows になります)
  • リポジトリ ディレクトリの名前を変更または削除する
  • WMI サービスを再度開始します (net start winmgmt)。

また、次の方法も役に立ちます (WMI をレジストリに再インストールするため)。

winmgmt /clearadap
winmgmt /kill
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf

Uros のご協力に感謝します。Web キャストとツールの両方が非常に役に立ちました。

于 2010-09-10T13:37:54.497 に答える
1

はい、そこにあるはずです。WMI の問題を診断するのに役立つwmidiag.vbsというツールがありますが、使用する前に、使用方法を説明する「Web キャスト」をいくつか見てみてください (ここここ) 。

于 2010-09-09T17:42:51.400 に答える