Using REG.EXE, built into Windows XP, Windows Server 2003, and later, or installed on Windows 2000 from the Support Tools folder of of the Windows 2000 CD-ROM, I have scripted RunSvc.bat to generate a CSV (Comma Separated Value) file containing the Key and display name of running services. The output is written to RunSvc.csv in the current directory.

The syntax for using RunSvc.bat is:

RunSvc

RunSvc.bat contains:

@echo off
setlocal
if exist RunSvc.csv del /q RunSvc.csv
set work="%TEMP%\RunSvc_%RANDOM%.TMP"
set OK="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\"
set qry=REG QUERY HKLM\System\CurrentControlSet\Services
if exist %work% del /q %work%
for /f "Skip=1 Tokens=*" %%a in ('net start^|find /v "The command completed successfully."') do (
 @echo %%a>>%work%
)
for /f "Tokens=*" %%a in ('%qry%^|find /i %OK%') do (
 call :getsvc "%%a">nul 2>&1
)
del /q %work%
endlocal
goto :EOF
:getsvc
for /f "Tokens=1,2*" %%b in ('REG Query %1 /V DisplayName^|Find "REG_SZ"^|Findstr /i /g:%work%') do (
  @echo %1,"%%d">>RunSvc.csv
)