DOWNLOAD: | srvany.exe | instsrv.exe | Beispieldateien (ZIP) aus dieser Seite |
"c:\program files\anyprogram.exe"
\\
===== Schritt 1: Installieren von SRVANY =====
Vorausgesetzt, Sie haben die beiden Programme srvany.exe und instsrv.exe in einem beliebigen Verzeichnis Ihrer Wahl (z.b. c:\bin) untergebracht.
Dann wechseln Sie am besten in dieses Verzeichnis und geben folgendes Kommando ein:
instsrv testservice c:\bin\srvany.exe
Der **Service-Name**, in diesem Beispiel **testservice** kann von Ihnen frei vergeben werden. Einzige Einschränkung: **Der Name darf im System nur einmal auftauchen.** Er dient zur Identifizierung z.B. im Task Monitor des Systems und bei der Deinstallation des Service. Es muss auf jeden Fall **der volle Pfadname** für das Service-Programm angegeben werden.
Damit wird also srvany.exe unter dem Namen testservice als Service registriert.
Der Service startet automatisch, wenn das System hochfährt; er läuft als Systemprozess.
Nach dieser Registrierung läuft der Service noch nicht!
\\
===== Schritt 2: Konfiguration von SRVANY =====
Nun benötigt der Service (im Beispiel: testservice) zusätzliche Angaben, welches Programm (im Beispiel: testservice) er in seiner Umgebung ablaufen lassen soll. Dabei sind nicht nur der Pfad der Programmdatei sondern sind auch die Kommandozeilen-Argumente in der Systemregistry einzutragen.
Der Pfad in der Registry-Datei lautet für unser Beispiel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\
Nach der Installation im Schritt 1 wurde sofort dieser Schlüssel angelegt.
Nun müssen Sie in diesem Registry-Pfad zunächst den Unterschlüssel **Parameters** und darin dann drei Stringparameter (REG_SZ) anlegen, die das Anwendungsprogramm und seine Parameter bezeichnen.
Um Ihnen die Arbeit etwas zu erleichtern, erstellen wir Ihnen hier beispielhaft eine Stapeldatei (.BAT) und eine Registry-Konfigurationsdatei (.REG) zu einer Testanwendung test.bat. Alle drei können Sie markieren, kopieren und lokal speichern, um damit zu testen. Wenn Sie die Stapeldatei mit Doppelklick im Windows-Explorer aufrufen, wird Ihnen das manuelle Installieren des Dienstes abgenommen.
**Die Stapeldatei zum Kopieren (z.B. nach testservice.bat):**
@echo off
SET APPNAME=testservice
SET INSTSRV=c:\bin\instsrv.exe
SET SRVANY=c:\bin\srvany.exe
echo.
if "%1" == "stop" goto stop
echo Einrichten des Service %APPNAME%
echo ----------------------------------------------------------------------
echo Anhalten und Deinstallieren mit dem Aufruf %APPNAME% stop
echo Pfadangaben notfalls ergaenzen
echo.
echo Installieren des Service...
"%INSTSRV%" "%APPNAME%" "%SRVANY%"
echo.
echo Installieren der Registry-Werte...
regedit "%APPNAME%.reg"
echo.
echo Starten des Service...
net start "%APPNAME%"
goto ende
:stop
echo Anhalten und Deinstallieren des Service %APPNAME%
echo ----------------------------------------------------------------------
echo Stoppen des Service...
net stop "%APPNAME%"
echo.
echo Deinstallieren des Service und der Registry-Werte...
"%INSTSRV%" "%APPNAME%" remove
:ende
echo.
echo *** Fertig ***
echo.
Ersetzen Sie bei den Zeilen
SET APPNAME=testservice\\
SET INSTSRV=c:\bin\instsrv.exe\\
SET SRVANY=c:\bin\srvany.exe\\
auf der rechten Seite der Zuweisung die Angaben nach Ihren Wünschen.
\\
Dazu passend müssen Sie eine Konfigurationsdatei für die Registry anlegen, die nachfolgend für unser Beispiel formuliert ist. Nennen Sie die Datei (APPNAME).reg
**Die zugehörige Registry-Datei zum Kopieren (z.B. nach testservice.reg):**
REGEDIT4 (1. Zeile bei Windows XP)
Windows Registry Editor Version 5.00 (1. Zeile bei Windows 7)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\Parameters]
"Application"="c:\\bin\\test.bat"
"AppDirectory"="c:\\bin"
"AppParameters"="Mein Parameter"
Je nach Betriebssystem-Version muss die erste Zeile umformuliert werden. Im obigen Beispiel sind zwei Versionen angegeben. Löschen sie die jeweils falsch Zeile aus der Datei (auch den Kommentar in Klammern!!!).
In der Zeile, die mit "[HKEY_LOCAL_MACHINE" beginnt, müssen Sie ggf. den Servicenamen (hier testservice) durch den engültigen Namen ersetzen.
Achten Sie auch darauf, dass bei den Parameterwerten das Trennzeichen '\' innerhalb eines Pfadnamens immer doppelt geschrieben wird.
\\
Und nun unsere Beispiel-Anwendung.
Es handelt sich um ein DOS-Batch-Script und heißt hier test.bat.
**Die zugehörige Anwendung zum Kopieren (z.B. nach test.bat):**
@echo off
echo. >>test.log
echo ---------------------------------------->>test.log
echo Mein Parameter lautet "%*" >>test.log
echo. >>test.log
dir c:\ >>test.log
Dieses kleine Script wird jedesmal, wenn der Service testservice startet, eine Meldung mit dem in der Registry gespeicherten Parameter "AppParameters" und danach das Verzeichnislisting von c:\ an die Datei test.log anhängen.
test.log wächst also mit jedem Service-Start um die Ausgabedaten.
\\
===== Schritt 3: Installation bzw. Start der Anwendung als Service =====
Der neu festgelegte Service wird im obigen Script sofort gestartet und läuft bei jedem Systemstart automatisch los.
Die Installation des Service und der erste Start wird durch den einfachen Aufruf des Batch-Scriptes durchgeführt:
testservice
Sie können mit dem folgenden Kommando den Service auch manuell starten, nachdem er wie in Schritt 1 installiert wurde:
net start testservice
\\
===== Schritt 4: Stop bzw. Deinstallation des Service =====
**Die manuelle Variante:**
Zunächst beenden Sie den Betrieb mit:
net stop testservice
Danach entfernen Sie den Service aus dem System mit:
instsrv testservice remove
Dabei verschwindet dann auch der gesamte Eintrag
**HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\**
aus der Registry.
\\
**Die Script-Variante:**
Rufen Sie das Script, mit dem Sie den Service eingerichtet haben, mit dem Argument 'stop' auf:
testservice stop
Dann wird der Service gestoppt und aus dem System entfernt.
\\
===== Anmerkung zum Acrobat Destiller =====
**Zitat eines Lesers:**
"Eine kleine Einstellung mußte ich ergänzen:
Und zwar legt der Distiller (Acrobat 5) unter **HKEY_CURRENT_USER/Software/ADOBE/Acrobat Distiller/5.0/WatchedFolders/** das überwachte Verzeichnis an. Will man den Dienst auf einem Server verwenden, muß man der Pfad zusätzlich unter **HKEY_USERS/.DEFAULT/Software/Adobe/Acrobat Distiller/5.0/WatchedFolders/** eintragen."
\\
\\
{{tag>windows}}