Search code examples
windowsvbscriptwmiwindows-2000

WMI namespace root\cimv2 not available on Win2k?


I'm trying to run the following VBScript code on a Win2k SP4:

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

It works on XP and Win7 without problems, but on this 2k box I get the following error:

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

The error description is: Namespace specified cannot be found.

When I query the namespaces on root, using this code:

strComputer = "."

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

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

I get this:

DEFAULT
SECURITY
WMI
directory
aspnet

As far as I have read, CIMV2 namespace should be there. Any ideas???

Thanks!

yorch.


Solution

  • Finally, what worked for me was rebuilding the WMI Repository. This is what I did:

    • Stop the WMI service (net stop winmgmt)
    • Go to %windows%/system32/wbem (in my win2k, winnt, on XP would be windows)
    • Rename or remove the repository directory
    • Start the WMI service again (net start winmgmt)

    Also, this method could have helped (to reinstall WMI into the Registry):

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

    Thanks Uros for your help, both webcasts and the tool were very helpful.