WMI GetObject Failing to return anything

C

Charles Palmer

I am working on a script that will run against all machines in a domain and
return some data about each machine through a WMI call. On about 10% of my
machines, I am not getting any return. I have the script ping each machine
first to make sure it returns as alive before I attempt a WMI call to the
machine. When I make the WMI call to the machine to get OS version and some
other data, if I don't have On Error Resume Next, the script fails with
GetObject failed. If I run the script with On Error Resume Next, after about
5 minutes, the WMI call fails and the script moves on to the next computer
in the list. The problem is, it doesn't run any of my logging or debugging
code after this point until on the next machine. I can't even return the
error message that is generated by GetObject. From trying to manually
connect to the machine through other methods, I know that the problem for
why the GetObject is failing is with the machine and I am trying to figure
out what the problem is, but this question is because it won't even log that
it has a failure when trying to connect to WMI. I am running this script
against about 500 machines and only pulling WMI on about 250 of them. Of
those 250, I have about 25 that are failing. Since it is taking between 3-5
minutes for each machine to fail, it is significantly increasing my script
runtime.

Any help or guidance that helps me figure out the problem or at least log
the problem machines would be greatly appreciated.

Thanks,
Charles Palmer
 
M

Marty List

Charles Palmer said:
I am working on a script that will run against all machines in a domain and
return some data about each machine through a WMI call. On about 10% of my
machines, I am not getting any return. I have the script ping each machine
first to make sure it returns as alive before I attempt a WMI call to the
machine. When I make the WMI call to the machine to get OS version and some
other data, if I don't have On Error Resume Next, the script fails with
GetObject failed. If I run the script with On Error Resume Next, after about
5 minutes, the WMI call fails and the script moves on to the next computer
in the list. The problem is, it doesn't run any of my logging or debugging
code after this point until on the next machine. I can't even return the
error message that is generated by GetObject. From trying to manually
connect to the machine through other methods, I know that the problem for
why the GetObject is failing is with the machine and I am trying to figure
out what the problem is, but this question is because it won't even log that
it has a failure when trying to connect to WMI. I am running this script
against about 500 machines and only pulling WMI on about 250 of them. Of
those 250, I have about 25 that are failing. Since it is taking between 3-5
minutes for each machine to fail, it is significantly increasing my script
runtime.

Any help or guidance that helps me figure out the problem or at least log
the problem machines would be greatly appreciated.

Thanks,
Charles Palmer


Without seeing your script, I'm going to guess the problem is on line 62.
 
C

Charles Palmer

Despite the wise comment, I found the problem to be false returns from name
resolutions. Systems that were unavailable, when pinged by name, returned
the IP address of a machine of a different name that was active. When trying
to establish a connection to the machine with the wrong machine name, it
gave an access denied and would just fail without any error. I still don't
know why my error handling wasn't able to report the problem, but I have
fixed the problem.

Thanks,
Charles
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top