Batch file to list specific running services

Hi, I need a batch file to be able to extract a list of machine names from the 'online.txt' file, ie,

for /f %%A in ('type "online.txt"') do (sc \\%%A query "servicename" | find "RUNNING")

then query a specific list of services running on remote machines, and output the results on screen. eg,
<MACHINENAME> <SERVICE> <RUNNING>
pauratAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
AmazingTechConnect With a Mentor Commented:
Let only those names pass through.

I'd use findstr for this.

findstr /i /c:"Print Spooler" /c:"mcshield" /c:"..." /c:"..."

If you don't want to use 2 find statements.

@for /f "tokens=*" %%A in ('@type "online.txt"') do @for /f "tokens=1,* delims=: " %%B in ('@sc \\%%A query ^| @findstr /i /c:"DISPLAY_NAME: Print Spooler" /c:"DISPLAY_NAME: mcshield" /c:"DISPLAY_NAME: ..." /c:"DISPLAY_NAME:..."') do @echo %%A,%%C,RUNNING

This was actually built to export to a file quite nicely.

(@for /f "tokens=*" %%A in ('@type "online.txt"') do @for /f "tokens=1,* delims=: " %%B in ('@sc \\%%A query ^| @findstr /i /c:"Print Spooler" /c:"mcshield" /c:"..." /c:"..." ^| @find /i "display_name:"') do @echo %%A,%%C,RUNNING)>RunningServicesReport.csv


@for /f "tokens=*" %%A in ('@type "online.txt"') do @for /f "tokens=1,* delims=: " %%B in ('@sc \\%%A query ^| @findstr /i /c:"Print Spooler" /c:"mcshield" /c:"..." /c:"..." ^| @find /i "display_name:"') do @echo %%A,%%C,RUNNING

Open in new window

0
 
AmazingTechCommented:
Give this a try.

default sc query is running services

stopped services
sc query state= inactive

all services
sc query state= all
@for /f "tokens=*" %%A in ('@type "online.txt"') do @for /f "tokens=1,* delims=: " %%B in ('@sc \\%%A query ^| @find /i "display_name:"') do @echo %%A,%%C,RUNNING

Open in new window

0
 
pauratAuthor Commented:
I am liking this....., but I could really do with looking for four specific services. eg, Print Spooler, McShield, + another 2 (that have not been decided on yet!). The output from listing all the services on the machines on the list would be a little too long to sort through on a daily basis.

Other than this minor point, the output from your script is perfect.

SERVICE_NAME: Spooler
DISPLAY_NAME: Print Spooler
        TYPE               : 110  WIN32_OWN_PROCESS (interactive)
        STATE              : 4  RUNNING
                                (STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
0
 
pauratAuthor Commented:
All yours. Many thanks.
0
All Courses

From novice to tech pro — start learning today.