Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Errorlevel von Windows-Diensten immer gleich?

UselessUser / 6 Antworten / Flachansicht Nickles

Hallo Leute,

ich möchte eine ganz simple Batch-Datei erstellen, die abfragt, ob ein bestimmter Dienst auf Windows XP/Server 2003 läuft.
Ich habe folgende Errorlevel im Internet gefunden:
0 = Computername oder Dienstname sind ungültig.
1 = Der Dienst ist gestartet.
2 = Der Dienst ist nicht gestartet.
3 = Der Dienst pausiert.

------------- Anfang ------------
@echo off
net start|find /i "spoolsv"
echo %errorlevel%
if %errorlevel% equ 1 (
echo "Dienst laeuft!"
)
if %errorlevel% equ 2 (
echo "Dienst laeuft nicht!"
)
pause
-------------- Ende --------------

Mein Problem: Es wird stets der Wert 1 ausgegeben, egal, ob der Dienst läuft oder nicht! Habe es schon mit verschiedenen Windows-Diensten auf 2 Rechnern versucht.

Wo steckt der Fehler?

Thx,

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
UselessUser gelöscht_101060 „Huhu, habe dazu etwas m.M.n. Passendes gefunden -...“
Optionen

Hallo Bergi2002,

danke für die Mühe und den Link! Allerdings komme ich mit dieser Batch-Datei nicht zurecht:

-------- Anfang -----------
@echo off
set retval=0
if "%~1" EQU "" goto usage
set pn=%~1
if "%~2" EQU "" goto usage
set un=%~2
goto main

:checkproc
for /f "usebackq tokens=1" %%a in ( `tasklist /fi "imagename eq %pn%" /fi "username eq %un%" /nh` ) do if "%%a" EQU "%pn%" exit /b 0
exit /b 1

:main
call :checkproc
set retval=%errorlevel%
goto eof

:usage
echo Aufruf von %0 Prozessname Benutzername
set retval=1

:eof
if %retval% EQU 0 (
echo Prozess laueft!
) else (
echo Prozess laueft NICHT!
)
exit /b %retval%
----------- Ende ---------------

Was bedeutet
"%~1" ?
Wo setze ich hier den Prozess ein, den ich suche und brauche ich noch den Benutzernamen, unter dem der Prozess läuft? Wo muss ich was eintragen?

Das Script scheint auch mit der Taskliste zu arbeiten, bei der einige Dienste nur als "svchost" bezeichnet werden.

UU

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen