Anzeige

Am Puls von Microsoft

Anzeige

Anwendungsprogramme als Systemdienst einrichten

Martin

Webmaster
Teammitglied
Normalerweise erhält man immer Tipps und Anleitungen, wie man überflüssige Systemdienste
entfernt oder deaktiviert, um so wertvolle Systemressourcen freizusetzen - diese
Anleitung hier ist genau das Gegenteil, aber ebenso nützlich.

Mit dem Kommandozeilen-Programm "Winserv" (Download im Anhang) ist es möglich,
normale Windows-Programme als Systemdienst einzurichten.
Sie werden dann ohne Oberfläche direkt beim Booten gestartet - wird das Programm
später aufgerufen, steht es in Sekundenschnelle zur Verfügung, weil es ja quasi
schon lief.
Der Vorteil gegenüber dem gewöhnlichen Autostart ist, dass keine Oberfläche und
keine Tray-Icons geladen werden, und der Dienst wesentlich weniger Ressourcen benötigt
als das "in voller Pracht" gestartete Programm.

Anforderungen gibt es verschiedene - bei mir waren es beispielsweise die Programme
StarOffice und PhotoImpact - ich nutze sie gerne und oft, genervt hat mich nur die
lange Ladezeit beim erstmaligen Aufruf.
Nun habe ich beide als automatisch startende Dienste eingerichtet - der eigentliche
Programmaufruf geht nun fantastisch schnell.

Klar ist natürlich, dass der Bootvorgang verzögert wird, je mehr Programme und Dienste
beim Systemstart geladen werden müssen. Auch sollte man über genügend RAM-Reserve
verfügen, wenn man auf diese Weise mehrere Programme schon beim Systemstart laden lässt.

Zur Veranschaulichung ein kleiner Vergleich, wie sich das auf meinem Rechner
(Athlon64 4200, 2GB RAM) ausgewirkt hat:

Vorher: Erster Aufruf von PhotoImpact dauert 20-25 Sekunden
Mit installiertem Systemdienst: ca. 5 Sekunden
Zusätzliche RAM-Belastung: 2 MB

Vorher: Erster Aufruf von StarOffice dauert ca. 10 Sekunden
Mit installiertem Systemdienst: ca. 3 Sekunden
Zusätzliche RAM-Belastung: 18 MB

Was es im Einzelfall bringt, hängt sicher davon ab, wie die Programme aufgebaut
sind - weitere Vergleiche dieser Art sind willkommen, dann sehen interessierte
Leser gleich, ob es die Mühe wert ist.


Nun aber zur Anwendung
Das Programm "winserv.exe" ist wie gesagt ein Kommandozeilen-Tool, es benötigt
also keine Installation, sondern wird direkt in einer DOS-Box mit den nötigen
Parametern aufgerufen.
(Die Kommandozeile muss natürlich als Administrator aufgerufen werden).
Eine ausführliche, allerdings englische Doku ist in der Zip-Datei enthalten.
Für alle, die Deutsch bevorzugen, erkläre ich die wichtigsten Funktionen hier.

Die Befehls-Struktur ist im Grunde immer gleich:
winserv <Kommando> <Service-Name> <Service-Optionen> <Programm> <Programm-Optionen>

verfügbare Kommandos sind:

install richtet ein Programm als Dienst ein
configure ändert einen vorhandenen Dienst
uninstall entfernt den Dienst
showconfig zeigt die Konfiguration des Dienstes an
start startet den Dienst
restart stoppt den Dienst und startet ihn neu
stop stoppt den Dienst
pause hält den Dienst an
continue setzt den Dienst fort

Alle Befehle außer den ersten beiden können übrigens auf alle Windows-Dienste
angewandt werden.

Den Kommandos "install" und "configure" können folgende Parameter mitgegeben werden:
-displayname Angezeigter Name des Dienstes
-description Beschreibung (das, was in der Diensteverwaltung in der zweiten Spalte steht)
-start Start-Art des Dienstes - "auto" "demand" oder "disabled"
-depends Abhängigkeit zu anderen Diensten (Syntax: -depends service1,service2 etc.)
-user Benutzer, unter dem der Dienst läuft
-password Passwort des angegebenen Benutzers


Der typische Befehls-Aufbau ist also folgendermaßen:

winserv install <service-name> <service-optionen> <programm> <programm-optionen>

winserv configure <service-name> <service-optionen> <programm> <programm-optionen>

winserv uninstall <service-name>


Und damit man das nun mal am lebenden Beispiel sieht - so sahen die Install-Kommandos meiner Dienste aus:

winserv install StarOffice -displayname StarOffice -description "Startet StarOffice als Dienst" -start auto "D:\Programme\StarOffice 8\program\soffice.exe"

winserv install PhotoImpact -displayname PhotoImpact -description "Startet PhotoImpact als Dienst" -start auto "D:\Programme\Ulead Systems\Ulead PhotoImpact 11\Iedit.exe"


Bleibt mir nur noch, viel Spaß und Erfolg beim Ausprobieren zu wünschen.
Und wie schon erwähnt, Feedback in Form von "bei Programm xyz hat es viel/nichts gebracht"
ist erwünscht.

Winserv Homepage: Winserv (@Sw4me)
 

Anhänge

  • winserv.zip
    22 KB · Aufrufe: 11.098
Zuletzt bearbeitet:
Anzeige
Danke funktioniert Perfekt und es ist ein Leistungszuwachs bei dem Programm Start zu bemerken und der ist nicht unwesentlich
 
Wenn Du jetzt noch verrätst, mit welchem Programm das so toll funktioniert, animierst Du vielleicht andere Nutzer des Programms zur Nachahmung :).
 
Hallo Martin,
erstmal vielen lieben Dank für den tollen Tipp. Funktioniert einwandfrei.
Habe folgende Programme als Dienst eingerichtet:

Adobe Photoshop CS3
Vorher: ~ 9 sek
Dienst: ~ 3 sek

Adobe InDesign CS3
Vorher: ~17 sek
Dienst: ~ 4 sek

Der Windows Startvorgang verzögert sich um etwa 7 Sekunden. Womit ich
sehr gut leben kann. Werde demnächst noch andere Programme und ihre
Startzeiten posten, vielen Dank nochmal für diesen Tipp.

Gruß SirDalli

PC Konfiguration:
Athlon X2 4200 @ 2,6 Ghz, 2GB RAM, Radeon 1950GT, WinVista Home Premium 32bit
 
Hallo, und guten Morgen zusammen,

dieses Tutorial erschien mir sehr sinnvoll > also machte ich mich gleich an die arbeit.

Mein Programm, dass ich als Dienst starten wollte war Everest Ultimate Edition (analyse Tool mit Slidebar Funktionalität".

Leider schaffe ich es nicht, diesen Dienst in Gang zu bringen.

Mit Windows + R > services.msc finde ich zwar den Dienst, jedoch fehlt auch meine hinterlegte Description - Ein manueller Startversuch endet mit folgender Meldung:

Dienst "Everest" wurde auf "Lokaler Computer" gestartet und dann angehalten. Einige Dienste werden automatisch angehalten, wenn sie nicht von anderen Diensten oder Programmen verwendet werden. :confused:

Zum Ablauf:

Winserv habe ich nach C:\winserv installiert.
CMD dort gestartet:

winserv install Everest -displayname Everest -description "Startet Everest als Dienst" -start auto "C:\Program Files (x86)\Lavalys\everest.exe.exe"

Bei der Umgebungsvariable Programme, bzw. Program Files, bin ich mir auch nicht sicher wie dies in der Befehlszeile geschrieben wird (Fakt ist jedoch, dass das Programm unter "Program Files (x86) installiert wurde).

"winserv showconfig everest" erbrachte folgende Auskunft:

Configuration of Everest
-displayname Everest
-nointeractive
-binary "C:\winserv\winserv.exe" :eek:
-start auto
-errorcontrol normal
-depends
-loadordergroup
-user LocalSystem
-ipcmethodblind
*Commandline Description "Startet Everest als Dienst" -start auto "C:\Program Files (x86)\Lavalys\everest.exe"
-noexpand


Wär schon wenn mir jemand unter die Arme greifen könnte...

Gruß, Matthias.
 
Die gute und zugleich schlechte Nachricht: Ich kann an dem Installationsbefehl keinen Fehler feststellen, außer ganz am Ende: everest.exe.exe
War das jetzt ein Tippfehler in diesem Posting?
 
Dann sehe ich wirklich keinen Fehler.
Es scheint, als würde der "-start"-Schalter einfach übergangen, bzw. das Ende der Beschreibung wird nicht erkannt.
Lass doch einfach mal die Parameter -description und -start weg, die sind optional. Den Starttyp kannst Du ja auch nachträglich noch ändern.
 
Sorry,

dummer Fehler von mir.
Der Pfad hiess anders... :eek:

C:\Program Files (x86)\Lavalys\Everest Ultimate Edition\everest.exe

Und schon gings.

Sorry
 
Hallo NjoyZ3,

hast Du es über diesen Weg geschafft Everest ohne VISTA UAC-Nachfrage zu starten?!

Vielen Dank für die kurze Info,
SHC
 
Ich hab mal meine Firewall als Dienst eingerichtet:
Windows-Start daurt nur minimal länger, Firewall is aber viel früher da

dann habe ich noch versucht Opera als Dienst einzurichten:
eingerichtet, Windows-Neustart, wollte Opera starten und dann die Fehlermeldung:
Another instance of Opera is running(oder so)
 
ich bekomme einen Fehler bei der winserv.exe :(
Kann mir das jemand erklären?
 

Anhänge

  • winserv.JPG
    winserv.JPG
    55,2 KB · Aufrufe: 2.570
Das "Zugriff verweigert" irritiert mich - Du hast wohl die Kommandozeile ohne Adminrechte aufgerufen?
 
Moin Moin,

Habe das soeben auch mal bei mir ausprobiert, doch leider wird immer
der falsche Pfad eingetragen.

---
winserv install Firefox -displayname Firefox -description "Startet Firefox als Dienst" -start auto "C:\Program Files\Mozilla Firefox\firefox.exe"
---

Der Dienst wird ohne Murren angelegt, doch leider immer mit dem Pfad
"C:\Winserv\winserv.exe" :(

Das gleiche Problem hatte wohl auch mal "NjoyZ3", doch er hatte den
Fehler gefunden (falscher Pfad). Doch bei mir ist der Pfad definitiv
richtig.

Jemand ne Lösung für mich

MfG
OlErB [Vista Ultimate32]
 
Syntaktisch ist da jedenfalls kein Fehler zu sehen.
Es wird sicher ein Problem mit dem Pfad sein, versuche mal mit cd direkt in dieses Verzeichnis zu springen. Irgendwas verhakt sich da, eventuell wegen der Leerzeichen, obwohl die kein Problem darstellen sollten.
 
Hallo, in welchen Pfad muss ich "winserv" kopieren???
Gruß Eskisam
 
Anzeige
Oben