【使用vbs脚本来监控windows服务器上的应用程序】

本文介绍了如何使用VBS脚本在Windows服务器上监控应用程序,如Notepad.exe或Tomcat的Java.exe,若进程不存在则自动启动。脚本包括实时监测、启动服务进程以及定时检测并启动/关闭进程的操作。
摘要由CSDN通过智能技术生成

使用vbs脚本来监控windows服务器上的应用程序(不存在就启动)

这个vbs代码主要实现的功能就是运行该程序,就会在进程中出现一个wscript.exe 它会每隔10s扫面一次进程中是否存在notepad.exe这个程序,不存在就启动。这个启动程序可能跟进程名不一样,好比tomcat应用,启动的是startup.bat,后台进程名为java.exe

前言

这个vbs代码主要实现的功能就是运行该程序,就会在进程中出现一个wscript.exe 它会每隔10s扫面一次进程中是否存在notepad.exe这个程序,不存在就启动。这个启动程序可能跟进程名不一样,好比tomcat应用,启动的是startup.bat,后台进程名为java.exe,这样就需要调整代码proname=“java.exe”

关于如果关掉监控 可以在运行下执行taskkill /f /im wscript.exe 或者在任务管理器 进程中找到wscript.exe 结束进程就可以了

调整WshShell.Run(“startup.bat”)

核心代码

dim wmi,proc,procs,proname,flag,WshShell
Do
proname="notepadjb51.exe" '需要监测的服务进程的名称,自行替换这里的记事本进程名
set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!\.rootcimv2")
set procs=wmi.execquery("select * from win32_process")
flag=true
for each proc in procs
if strcomp(proc.name,proname)=0 then
flag=false
exit for
end if
next
set wmi=nothing
if flag then
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run ("notepadjb51.exe")
end if
wscript.sleep 10000 '检测间隔时
VBS写个小脚本 实时监测指定程序是否运行 对运行的软件进行操作 最后关闭运行软件
strComputer = "."
Set objShell = CreateObject("Wscript.Shell") 
do
Set wbemServices = Getobject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_process")
For Each wbemObject In wbemObjectSet
if wbemObject.name="QQ.exe" then
  WScript.Sleep 1000
  objShell.SendKeys "{F12}"
  WScript.Sleep 1000
  objShell.SendKeys "{ENTER}"
  dim WSHshell 
  set WSHshell = wscript.createobject("wscript.shell") 
  WSHshell.run "taskkill /im wscript.exe /f ",0 ,true 
end if
Next
loop
批处理检测进程是否存在;这个我用来检测文化进程是否存在,因为是绿色版的,很容易被关闭,所以需要检测。
tasklist /nh|find /i "ClientOfWatcher.exe"
if ERRORLEVEL 1 (start C:\watcher\ClientOfWatcher.exe) else (exit)
VBS定时检测进程是否存在,如果不存在就启动进程。
option Explicit    
dim wmi,proc,procs,proname,flag,WshShell    
Do  
    proname="ClientOfWatcher.exe" '需要监测的服务进程的名称,自行替换这里的记事本进程名    
set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")    
set procs=wmi.execquery("select * from win32_process")    
  flag=true    
for each proc in procs    
    if strcomp(proc.name,proname)=0 then    
      flag=false    
      exit for    
    end if    
next    
  set wmi=nothing    
  if flag then    
    Set WshShell = Wscript.CreateObject("Wscript.Shell")    
    WshShell.Run ("C:\Watcher\ClientOfWatcher.exe")    
end if    
  wscript.sleep 50000 '检测间隔时间,这里是50秒    
loop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

usp1994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值