code:
1
2
3
4
5
6
7
8
9
10
11
12
| For Each objComputer in oucom
compnr = mid(objComputer.Name, 4)
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & compnr & "\root\cimv2")
Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = " & compnr & "")
For Each objStatus in colPings
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
WScript.Echo "Computer did not respond."
Else
Wscript.Echo "Computer responded."
End If
Next
Next |
Ik zie niet waarom het bovenstaande script een foutmelding oplevert. Het is de bedoeling dat het script via de commandline of via een inputbox een OU-naam krijgt, vervolgens gaat hij de kijken welke pc's er in die OU staan, deze pc's worden pingt vervolgens gepingt om te kijken of ze aan staan en indien dat het geval is wordt er een actie uitgevoerd. Op dit moment een wscript.echo, straks een shutdown (gebruikers waarderen het niet echt als ik test met shutdown scripts
De eerste delen werken, het shutdown deel ook, maar toen ik het ping-deel er tussen probeerde te zetten begonen de fouten. Wel te verstaan: Error: 0x80041017, Code: 80041017, Source: (null). Zit nu al een uur te googlelen en heb nog niets relevants gevonden.
/edit: via google op de error zoeken leverde voornamelijk meldingen op over gebruik van \\ ipv \ in UNC-paths, niet direct relevant geloof ik. He ping deel is aangepast van een script van http://msdn.microsoft.com...wmi_tasks__networking.asp om zo te passen binnen een bestaand reboot script ( wat wel werkt). Het gaat mis op de regel "For Each objStatus in colPings". Dit deel is echter niet veranderd, ik denk dat de bovenstaande regel het probleem is, daar heb ik " & compnr & " ingeplakt ipv de vast waarde in het voorbeeld.
[ Voor 51% gewijzigd door SirBlade op 30-11-2005 20:53 ]