Listing 4: RebootSubnet.vbs

strIPSubnet = «192.168.0.»

Set objShell = CreateObject(«WScript.Shell»)

On Error Resume Next
For strIPNode = 1 To 254

    strComputer = strIPSubnet & strIPNode

    Set objScriptExec = objShell.Exec(«ping -n 2 -w 1000 « & strComputer)
    strPingStdOut = LCase(objScriptExec.StdOut.ReadAll)

    If InStr(strPingStdOut, «reply from « & strComputer) Then
	Set objWMIService = GetObject(«winmgmts:» & _
	        «{impersonationLevel=impersonate,(Shutdown)}!» & _
	        strComputer & «
ootcimv2»)
        If Err.Number <> 0 Then
	     WScript.Echo strComputer & «: « & Err.Description
	     Err.Clear
        Else
	   Set colOperatingSystems = objWMIService.ExecQuery _
	              («SELECT * FROM Win32_OperatingSystem»)
	   For Each objOperatingSystem in colOperatingSystems
		objOperatingSystem.Reboot()
	   Next
       End If
    Else
	WScript.Echo strComputer & «: Host unreachable»
   End If
Next