Ergänzungen


Dienste unter Windows 95

Es bestehen keinerlei Einschränkungen bezüglich der Programmausführung von als Dienst gestarteten Programmen. Auch grafische Anzeigen werden genau so aufgebaut wie gewohnt und sind also vollkommen vor der eigentlichen Anmeldung nutzbar. Laden Sie den Dateimanager als Dienst und Ihnen steht der gesamte Umfang auch ohne Anmeldung zur Verfügung.

Dies ist natürlich auch ein gewisses Sicherheitsrisiko, da der einzige Weg diese Funktionalität zu unerlaubten Zwecken zu mißbrauchen, die Einschränkung der Userrechte ist und so unter diesen Anmeldungen die Einrichtung neuer Dienste nicht statthaft ist. Solche differenzierten Userrechte können unter Windows 95 mit dem Policy Editor erzeugt werden.
( Auf der Install CD )

Einzige Einschränkung ist wirklich, wie im Artikel schon beschrieben, Programme die sich auf die Taskbar als Symbol setzen, da diese zum Start des Dienstes noch nicht verfügbar ist.

 


Dienste unter Windows NT 4.0

Ich finde es gut, das unter NT auch in dieser Angelegenheit ein weit größeres Maß an Sicherheit vorliegt. Ein Dienst unter NT ist zwar mit Hilfe von INSTSRV und SRVANY auch kein Problem, aber erstens ist hier von Anfang an die Trennung der Userrechte vollzogen und somit kaum eine Lücke unberechtigter Weise einen solchen Dienst zu installieren und zweitens werden keinerlei grafische Anzeigen unterstützt. Dies ändert sich auch nicht nach der Anmeldung. Ein permanenter Timer mit Form1.Show wird sich den Wolf laufen, es wird kein Fenster aufgebaut. Einzige mir einfallende Möglichkeit, aus dem Dienst heraus ein Programm aufzurufen.

Ansonsten aber ist das als dienst laufende Programm voll funktionstüchtig, was auch Dateizugriffe angeht und da es ja ggf. Unter eigenem Account (und der ggf. Mit Adminrechten) laufen kann, hätte man hier eine Möglichkeit auch unter einer Anmeldung mit Gast oder Benutzerrechten bestimmte sonst nicht zulässige Operationen auszuführen.

 


Sysdiff

Sysdiff ist ein weiteres Tool aus der MS Schmiede. Mit ihm kann ein sogenannter Systemsnapshot erstellt werden und dieser Istzustand in eine Datei geschrieben werden.

SYSDIFF /SNAP NamederDatei

Anschließend kann man seine Installation durchführen, in unserem Fall das Anlegen des Dienstes, und diese Veränderungen zum Snapshot in eine weitere Datei (Differenzdatei) schreiben.

SYSDIFF /DIFF NamederDatei NamederDiffdatei

Diese ermittelte Differenzdatei ließe sich dann auf PCs ohne diesen Dienst ausführen ...

SYSDIFF /APPLY /M NamederDiffdatei

.. ,so das ohne viel Aufwand auch hier der Dienst wieder eingerichtet werden kann.

Natürlich würde auch diese Installation Adminrechte benötigen.

Wichtig! – Durch das Ausführen der Diffdatei werden zwar alle notwendigen Eintragungen erledigt, der Dienst erscheint aber erst bei einem Neustart des PCs in der Systemsteuerung/Dienste.

 


Parameter

Es gibt standardmäßig drei Eigenschaften für die Startart eines Dienst.

1 – Automatisch / 2 – Manuell / 3 – Deaktiviert

Wenn sie einerseits die Registry unter dem Schlüssel eines Dienstes und andererseits das Dienstefenster in der Systemsteuerung geöffnet haben und die Startart ändern, ist erkennbar das unter dem Eintrag "START" sich der Wert ändert. Dabei erhält Automatisch die 2 / Manuell die 3 und Deaktiviert die 4.

Alle anderen Werte sind nicht über das Eigenschaftsfenster der Dienste zu erzeugen.

Tragen sie aber in der Registry eine 0 oder eine 1 als Wert ein und öffnen das Dienstefenster in der Systemsteuerung neu, so sieht man, das für den Wert 0 = "Neustart" und für 1 = "System" steht.

Ich gehe davon aus, das beide Werte nur während einer Sitzung geändert werden können, wobei Neustart scheinbar für die Unterscheidung steht, ob der PC neu gestartet wurde oder ob sich nur ein neuer User angemeldet hat. Der Wert 1 für System kann sicher nur von bestimmten Diensten genutzt werden, vielleicht Dienste, die in Abhängigkeit von anderen Diensten gestartet werden.

 


Beispielprogramm DIENSTZEIT

Um zu dem geschriebenen auch einen Test durchführen zu können wurde das Programm Dienstzeit.exe erstellt. ( Quellcode als VB4/32Bit anbei )

Dieses kleine Programm hat zwei Funktionen.

1. Aufbau eines Fensters in der rechten, unteren Ecke und Ausgabe der aktuellen Systemzeit.
2. Anlegen einer Datei und Schreiben der aktuellen Systemzeit in die Datei. Timer = 500

Wenn dieses Programm unter Windows95 als Dienst einrichten wird, so wird noch vor der Anmeldung
(soweit überhaupt eine besteht !) das Programm ausgeführt und es erfolgt die visuelle Bestätigung des Programmstarts. Der Verweiß in der Registry muß dann natürlich auf den Pfad zeigen, in das das Programm kopiert wurde und die zu startende Datei heißt dann Dienstzeit.exe.Außerdem wird die Datei xxxinfo.txt angelegt, in die die Uhrzeit eingetragen wird.

Wenn dieses Programm unter Windows NT (hier 4.0 als Test) eingesetzt wird, so wird keinerlei grafischer Fensteraufbau erfolgen. Aber die Funktion des Schreibens der aktuellen Systemzeit in die Datei xxxinfo.txt wird als Beweis für Erfolg (oder Mißerfolg) ausgeführt.

Der Aufruf zum Einrichten des Dienstes könnte dann lauten

INSTSRV Dienstzeit C:\WINNT\SYSTEM\SRVANY.EXE

Der Eintrag unter dem Service Schlüssel Dienstzeit\Parameters lautet dann

Application = "LW:\Pfad\Dienstzeit.exe" und AppDirectory = "LW:\Pfad".

 


SYSDIFF Beispiel DIENSTZEIT

Nur nutzbar, wenn gleiche Verzeichnisstruktur besteht.

C:\WINNT ; C:\WINNT\SYSTEM32 als Systemverzeichnisse
D:\TEST7 als Programmverzeichnis (Dienstzeit.exe dorthin kopieren)

Außerdem muß natürlich auch die SRVANY.EXE im System32 Verzeichnis existieren.

 


NTSRV.OCX

Einen weiteren Weg ein Programm als Dienst unter windows NT 4.0 laufen zu lassen ist ein ActiveX Control von Microsoft.

NTSRV.OCX ins System32 Verz. Kopieren und über REGSVR32 NTSRV.OCX registrieren, dann über Zusatzsteuerelemente in ein VB 4 bzw. 5 Projekt einbinden.

Leider hat ein Test bisher kein Erfolg gezeichnet, soweit man Dr.Watson nicht als Erfolg versteht, da im Moment keinerlei Dokumentation zur Verfügung steht.
Das Control ist kostenfrei nutzbar, MS bietet aber keinerlei Support.

 


© A.Gamper / Mai 1998