0

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

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

4

2 回答 2

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"
于 2013-07-22T23:03:50.250 回答
0

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

@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%
于 2013-07-22T22:01:47.390 回答