如何编写批处理文件以重新启动具有不同名称的服务

时间:2013-07-22 20:31:46

标签: windows windows-7 batch-file cmd prompt

我正在尝试编写一个批处理文件,该文件将从我公司使用的名为Bomgar的程序重启服务,该程序允许我们的技术支持人员远程访问员工计算机。我知道如何编写一个重启服务的批处理文件,问题是每个服务上都有一个唯一的编号ID(例如; bomgar-ps-10000000-10000000),这是完全不同的机器。有没有办法重新启动名称在“范围”内的服务?比如任何名称中包含“bomgar-ps”的服务。

真的不知道如何处理这个问题。我们遇到的问题是,这项服务偶尔无法启动,当员工打电话遇到问题时,他们并不精通技术,因此浪费了大量时间试图引导他们进入services.msc并手动重新启动服务。

2 个答案:

答案 0 :(得分:1)

这也应该有效。

@echo off
set "servicename="
for /f "tokens=*" %%a in ('net start ^| find /i "bomgar-ps") do set "servicename=%%a"
if defined servicename net stop "%servicename%"
ping -n 3 localhost >nul
net start "%servicename%"
echo servicename "%servicename%" has attempted to restart

如果您只是通过电话引导某人重新启动服务,那么这将以相当简单的方式将名称打印到控制台(如果bomgar可以是混合情况,则将/ i添加到find命令中“

net start|find "bomgar"

答案 1 :(得分:0)

试试这个,我用它来搜索打印后台处理程序名称并重新启动它。你应该可以用boomgar-ps替换线轴,你甚至可以删除SERVICE_NAME:part。

@ECHO OFF
>%TEMP%\~sc.log (sc queryex type= service state= all)
for /F "tokens=1,* delims=: " %%I in ('type %TEMP%\~sc.log^|find "SERVICE_NAME: Spool"') do set scname=%%J
ECHO RESTARTING %scname%
sc stop %scname%
sc start %scname%