Solved

Run file

Posted on 2008-11-01
5
227 Views
Last Modified: 2010-04-24
vbs code that do the following.

1. check whether any data is received by lan /network or not
2. if not data received for last 10 mintues, terminate specified process.
3. run specified program
4. loop repeats after every 15 minutes.
0
Comment
Question by:ankur3020
  • 3
5 Comments
 
LVL 32

Accepted Solution

by:
Robberbaron (robr) earned 500 total points
ID: 22875644
schedule this script to run every 15min

save file as checker.vbs or similar

Wscript.Timeout = 650  'seconds
 

Wscript.Echo "Script Start"
 

'get traffic in 10min

GetTraffic "localhost", bytesStart

Wscript.Sleep 600000   '10 minutes=600000 millisecs

GetTraffic "localhost", bytesEnd
 

If bytesEnd = bytesStart Then

  'no traffic

  KillProcess  "MyAppName"

  'start application

  

  Set WshShell = WScript.CreateObject("WScript.Shell")

  WshShell.Run "MyNextApp.exe"
 

End if
 

WScript.quit
 

Sub KillProcess(strComputername,processName)

	strComputer = strComputername  '"."

	Set objWMIService = GetObject("winmgmts:" _

	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

	Set colProcessList = objWMIService.ExecQuery _

	    ("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")

	For Each objProcess in colProcessList

	    objProcess.Terminate()

	Next

End Sub
 

Sub GetTraffic(strComputername,bytesTotal)

  'List the network interfaces on the computer. These can be used to find the packets and network traffic

  Dim oSvc

  set oSvc = GetObject("winmgmts:\\" & strComputername & "\root\cimv2")

  wqlQuery = "Select * from Win32_PerfRawData_Tcpip_NetworkInterface"

  bytesTotal=0

  for each oData in oSvc.ExecQuery(wqlQuery)

    

    for each oProperty in oData.Properties_
 

      if oProperty.Name = "BytesReceivedPersec" then

        

        bytesTotal = oProperty.Value
 

      end if      

    next

  next
 

End Sub

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22876818
i ran the code and found one error. plsrectify it. the code i used is attached for ur ref.
i got error in line 12, killprocess,  error is invalid property /argument.
 pls tell me what is meaning of timeout, and for how long script will run.

i have replaced the process name with my actual process. one thing i want to know that r u comparing value or data received at different times or data sent.
Wscript.Timeout = 650  'seconds

 

Wscript.Echo "Script Start"

 

'get traffic in 10min

GetTraffic "localhost", bytesStart

Wscript.Sleep 600   '10 minutes=600000 millisecs

GetTraffic "localhost", bytesEnd

 

If bytesEnd = bytesStart Then

  'no traffic

  KillProcess  "BBClient.exe"

  

  'start application

  

  Set WshShell = WScript.CreateObject("WScript.Shell")

  WshShell.Run "BBClient.exe"

 

End if

 

WScript.quit

 

Sub KillProcess(strComputername,processName)

	strComputer = strComputername  '"."

	Set objWMIService = GetObject("winmgmts:" _

	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

	Set colProcessList = objWMIService.ExecQuery _

	    ("SELECT * FROM Win32_Process WHERE Name = '" & processName & "'")

	For Each objProcess in colProcessList

	    objProcess.Terminate()

	Next

End Sub

 

Sub GetTraffic(strComputername,bytesTotal)

  'List the network interfaces on the computer. These can be used to find the packets and network traffic

  Dim oSvc

  set oSvc = GetObject("winmgmts:\\" & strComputername & "\root\cimv2")

  wqlQuery = "Select * from Win32_PerfRawData_Tcpip_NetworkInterface"

  bytesTotal=0

  for each oData in oSvc.ExecQuery(wqlQuery)

    

    for Each oProperty in oData.Properties_

 

      if oProperty.Name = "BytesReceivedPersec" then

        

        bytesTotal = oProperty.Value

 

      end if      

    next

  next

 

End Sub

Open in new window

0
 

Author Comment

by:ankur3020
ID: 22877989
i made the required changes and it is working fine now.thanks
0
 

Author Closing Comment

by:ankur3020
ID: 31512445
thks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Welcome to part one of a multi-part tutorial series, VBScript for Windows System Administrators.  The goal of this series is to teach non-programmers how to write useful VBS code to automate their environment, and perform tasks faster, and in a more…
Well hello again!  Glad to see you've made it this far without giving up.  In this, the fourth installment of my popular series, I'm going to cover functions and subroutines, what they are, and why they are useful.  Just in case you stumbled onto th…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now