title: VBS To Event Log
body: <p>I have a script that I am currently using to check when that network goes up or down. Its writing to a pinglog.txt . </p>
  
  <p>For the life of me I can not figure out how to get it to write to the event log when the network goes down. Where it says:</p>
  
  <pre><code>   Call logme(Time &amp; " - "  &amp; machine &amp; " is not responding to ping, CALL FOR 
  
     HELP!!!!",strLogFile) 
  </code></pre>
  
  <p>Thats what I need to write to the Event Log "Machine is not repsonding to ping, CALL FOR HELP!!!!</p>
  
  <pre><code> 'Ping multiple computers and log when one doesn't respond.
   '################### Configuration #######################
  
   'Enter the IPs or machine names on the line below separated by a semicolon
    strMachines = "4.2.2.2;8.8.8.8;8.8.4.4"
  
    'Make sure that this log file exists, if not, the script will fail.
     strLogFile = "c:\logs\pinglog.txt"
  
     '################### End Configuration ###################
  
     'The default application for .vbs is wscript. If you double-click on the script,
     'this little routine will capture it, and run it in a command shell with cscript.
      If Right(WScript.FullName,Len(WScript.FullName) - Len(WScript.Path)) &lt;&gt;       "\cscript.exe" Then
             Set objWMIService = GetObject("winmgmts:    {impersonationLevel=impersonate}!\\.\root\cimv2")
          Set objStartup = objWMIService.Get("Win32_ProcessStartup")
          Set objConfig = objStartup.SpawnInstance_
          Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
          objProcess.Create WScript.Path + "\cscript.exe """ + WScript.ScriptFullName + """", Null, objConfig, intProcessID
      WScript.Quit
      End If
  
      Const ForAppending = 8
      Const ForReading = 1
      Const ForWriting = 2
  
      Set objFSO = CreateObject("Scripting.FileSystemObject")
  
      If objFSO.FileExists(strLogFile) Then
      Set objFolder = objFSO.GetFile(strLogFile)
      Else
  Wscript.Echo "Log file does not exist. Please create " &amp; strLogFile
  WScript.Quit
    End If
  
   aMachines = Split(strMachines, ";")
  
      Do While True 
      For Each machine In aMachines
              Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
              ExecQuery("select * from Win32_PingStatus where address = '"_
              &amp; machine &amp; "'")
              For Each objStatus In objPing
                         If IsNull(objStatus.StatusCode) Or objStatus.StatusCode&lt;&gt;0 Then 
                                  Call logme(Time &amp; " - "  &amp; machine &amp; " is not responding to   ping, CALL FOR 
  
    HELP!!!!",strLogFile) 
                         Else
                                  WScript.Echo(Time &amp; " + "  &amp; machine &amp; " is responding to       ping, we are good")    
                      End If
                 Next
          Next
          WScript.Sleep 5000
    Loop
  
    Sub logme(message,logfile)
      Set objTextFile = objFSO.OpenTextFile(logfile, ForAppending, True)
      objtextfile.WriteLine(message)
      WScript.Echo(message)
      objTextFile.Close
    End Sub
  </code></pre>
  
  <p>Sorry about the spacing in the code.  Thanks for the help</p>