- ·上一篇文章:获取时分秒x+判断时间段
- ·下一篇文章:局域网破坏程序(批处理)
- ·百度中搜索更多的关于“批处理结合VBS获取服务基本状态”相关内容
- ·谷歌中搜索更多的关于“批处理结合VBS获取服务基本状态”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
批处理结合VBS获取服务基本状态
@echo off&title DOS资源站 www.cmdos.net
cls
echo set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>ServiceStatus.vbs
echo set colInstalledServices = OBJWMIService.ExecQuery("Select * From Win32_Service")>>ServiceStatus.vbs
echo For Each OBJService in colInstalledServices>>ServiceStatus.vbs
echo Wscript.Echo OBJService.State ^& vbTab ^& OBJService.DisplayName>>ServiceStatus.vbs
echo Next>>ServiceStatus.vbs
cscript //nologo ServiceStatus.vbs >ServiceStatus.txt
for /f "skip=1 tokens=2 delims=:" %%i in ('find /v /c "" ServiceStatus.txt') do set total=%%i
for /f "skip=1 tokens=2 delims=:" %%a in ('find /i /c "running" ServiceStatus.txt') do set rcount=%%a
for /f "skip=1 tokens=2 delims=:" %%x in ('find /i /c "Stopped" ServiceStatus.txt') do set scount=%%x
ping -n 2 127.1 >nul 2>nul
echo 计算机系统里安装的服务总共有%total% 个。
echo.
ping -n 3 127.1 >nul 2>nul
echo 正在运行的服务有%rcount% 个。列表如下:
echo.
ping -n 3 127.1 >nul 2>nul
for /f "skip=2 delims=" %%k in ('find /i "running" ServiceStatus.txt') do echo %%k
ping -n 3 127.1 >nul 2>nul
echo.
echo 已经停止的服务有%scount% 个。列表如下:
echo.
ping -n 3 127.1 >nul 2>nul
for /f "skip=2 delims=" %%p in ('find /i "stopped" ServiceStatus.txt') do echo %%p
echo.
ping -n 3 127.1 >nul 2>nul
echo set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>stoppable.vbs
echo set colServices = objWMIService.ExecQuery("Select * From Win32_Service Where AcceptStop = True")>>stoppable.vbs
echo For Each OBJService in colServices>>stoppable.vbs
echo Wscript.Echo OBJService.State ^& vbTab ^& OBJService.DisplayName>>stoppable.vbs
echo Next>>stoppable.vbs
cscript //nologo stoppable.vbs >stoppable.txt
for /f "skip=1 tokens=2 delims=:" %%e in ('find /i /c "running" stoppable.txt') do set srcount=%%e
echo 可以停止但是正在运行的服务有%srcount% 个。列表如下:
echo.
ping -n 3 127.1 >nul 2>nul
for /f "skip=2 delims=" %%g in ('find /i "running" stoppable.txt') do echo %%g
ping -n 3 127.1 >nul 2>nul
echo.
for /f "skip=1 tokens=2 delims=:" %%j in ('find /i /c "stopped" stoppable.txt') do set sscount=%%j
if not "%sscount%"==" 0" (
echo 可以停止而且已经停止的服务有%sscount% 个。列表如下:
echo.
ping -n 3 127.1 >nul 2>nul
for /f "skip=2 delims=" %%c in ('find /i "stopped" stoppable.txt') do echo %%c
) else echo 可以停止而且已经停止的服务有 0 个。
del ServiceStatus.vbs stoppable.vbs ServiceStatus.txt stoppable.txt >nul
pause

