找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18101|回复: 5

[问题求助] vb监控win7服务

[复制链接]
发表于 2015-4-30 13:40:54 | 显示全部楼层 |阅读模式
我电脑有一服务不定时停止,所以想用一脚本监控,当监控但服务停止时让它启动,启动后继续监控。后台运行
发表于 2015-4-30 14:06:16 | 显示全部楼层
本帖最后由 pcl_test 于 2015-4-30 16:02 编辑

监控.bat

  1. @echo off
  2. if "%1"=="h" goto begin
  3. start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
  4. :begin
  5. net start|find "服务"||net start 服务
复制代码
任务计划
  1. schtasks /create /sc minute /mo 1 /tn "每隔一分钟检测服务" /tr "C:\监控.bat"
复制代码
监控.vbs
  1. CreateObject("WScript.Shell").Run "cmd /c net start 服务",0
复制代码
任务计划
  1. schtasks /create /sc minute /mo 1 /tn "每隔一分钟检测服务" /tr "C:\监控.vbs"
复制代码
 楼主| 发表于 2015-4-30 14:15:53 | 显示全部楼层
谢谢,我一直在for循环上考虑,居然忘了还有计划任务这个神奇的东西
 楼主| 发表于 2015-4-30 16:17:04 | 显示全部楼层
本帖最后由 牛虻 于 2015-4-30 16:20 编辑

你vbs用的还是 cmd命令
要求:
1、不影响使用,后台运行
2、指定监测时间,如一分钟监测一次
这是我写的bat ,不能后台
  1. @echo off
  2. for /f "skip=3 tokens=4" %%i in ('sc query SNAC') do set "zt=%%i" &goto :next
  3. :next
  4. if /i "%zt%"=="RUNNING" (
  5.     echo 已经发现该服务在运行。
  6. ) else (
  7.         echo 该服务现在处理停止状态。
  8.            echo 正在启动SNAC网络准入服务...
  9.         net start "SNAC"
  10.             netsh interface set interface name="本地连接" admin=DISABLED
  11.         netsh interface set interface name="本地连接" admin=ENABLED
  12. )
  13. pause >nul
复制代码
发表于 2015-5-5 20:20:49 | 显示全部楼层
本帖最后由 czjt1234 于 2015-5-5 22:49 编辑
  1. Dim Shell, fso, TextStream, s

  2. s = "Helpsvc"    '服务名
  3. Set Shell = CreateObject("Shell.Application")
  4. Set fso = CreateObject("Scripting.FileSystemObject")

  5. If Shell.CanStartStopService(s) = False Then
  6.   MsgBox "当前用户没有权限启动和停止指定的服务", 4096
  7.   WScript.Quit()
  8. End If

  9. Do
  10.   If Shell.IsServiceRunning(s) = False Then
  11.     Set TextStream = fso.OpenTextFile("日志.txt", 8, True)
  12.     If Shell.ServiceStart(s, False) = False Then
  13.       TextStream.WriteLine Now() & " 启动服务失败"
  14.     Else
  15.       TextStream.WriteLine Now() & " 启动服务成功"
  16.     End If
  17.     TextStream.Close()
  18.   End If
  19.   WScript.Sleep 1000 * 60   '1分钟
  20. Loop
复制代码

简化版
  1. s = "Helpsvc"    '服务名
  2. Set Shell = CreateObject("Shell.Application")
  3. Do
  4.   If Shell.IsServiceRunning(s) = False Then
  5.     Shell.ServiceStart s, False
  6.   End If
  7.   WScript.Sleep 1000 * 60   '1分钟
  8. Loop
复制代码
发表于 2015-5-5 21:12:26 | 显示全部楼层
回复 4# 牛虻


    放在任务计划里面执行的时候会有窗口弹出来吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:03 , Processed in 0.018334 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表