Autor Beitrag
Nico B.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win XP
Delphi 2006 Prof.
BeitragVerfasst: Mo 25.01.10 14:13 
Hallo Leute,

ich programmiere gerade einen Dienst, der Vollzugriff auf eine Textdatei auf einem Netzlaufwerk haben soll.
Wenn das Netzlaufwerk nicht verbunden ist, soll es vom Dienst verbunden werden.

Was muss ich beim Benutzer beachten über den der Dienst gestartet werden soll.

Momentan habe ich nämlich folgendes Problem:
Variante 1: ServiceStartName=Computername\Benutzer und Passwort=xyz
So läßt sich der Dienst installieren.
Hier funktioniert auch ein erster Zugriff auf die Textdatei (Lesen+Schreiben), wenn das Netzlaufwerk bereits verbunden ist.
Aber der Dienst läßt sich nicht starten. (Fehler 1069: Der Dienst konnte wegen einer fehlerhaften Anmeldung nicht gestartet werden.)

Variante 2: ServiceStartName=Benutzername und Passwort=xyz
So läßt sich der Dienst nicht installieren. (Fehler 1057: Der Kontoname ist unzulässig oder nicht vorhanden, oder das Kennwort ist für den angegebenen Kontonamen ungültig.)
Auch hier (warum auch immer) funktioniert ein erster Zugriff auf die Textdatei (Lesen+Schreiben), wenn das Netzlaufwerk bereits verbunden ist.
Aber der Dienst taucht nicht in der Dienstverwaltung auf und läßt sich somit nicht starten.

Variante 3: ServiceStartName='' und Passwort=''
So läßt sich der Dienst installieren.
Auch hier funktioniert ein erster zugriff auf die Textdatei (Lesen+Schreiben), wenn das Netzlaufwerk bereits verbunden ist.
Aber der Dienst läßt sich nicht starten. (Fehler 1053: Der Dienst antwortete nicht rechtueitig auf die Start- oder Steuerungsanforderung.


Der erste Zugriff auf die Textdatei erfolgt übrigens im ServiceCreate-Ereignis des Dienstes.


Was mache ich falsch?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 25.01.2010 um 13:36
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 25.01.10 14:37 
Moin!

Variante 1 und UNC-Pfade sollten es doch schon tun. :nixweiss: Wozu ein NLW verbinden? :gruebel:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.01.10 14:52 
Wichtig ist vor allem, dass aus Sicherheitsgründen standardmäßig (zumindest unter Vista/7) die Netzlaufwerke des Benutzers für den Dienst nicht sichtbar sind. Deshalb wäre es da wenig sinnvoll überhaupt eines zu verwenden wie user profile iconNarses auch bereits geschrieben hat.

Theoretisch lässt sich das zwar umstellen, aber dadurch schafft man sich auch Sicherheitslücken, weswegen dies von MS nicht unterstützt wird (steht auch explizit in der KB dazu).
Nico B. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win XP
Delphi 2006 Prof.
BeitragVerfasst: Di 26.01.10 09:11 
Hallo Leute,

na klar UNC-Pfade. Warum bin ich da nicht selbst drauf gekommen?

Leider habe ich aber immer noch ein Problem.
Ich habe den Dienst nun umgebaut, so dass über UNC-Pfade auf die Textdatei zugegriffen werden kann.
Leider funktioniert es immer noch nicht.

Mit Variante 1 läßt sich der Dienst immer noch installieren, aber auch immer noch nicht starten. Selbe Fehlermeldung (1069) wie am Anfang.

Mit Variante 3 (ohne Benutzer) läßt sich der Dienst installieren, aber beim Start erhalte ich die Meldung "Der Dienst "XYZ" auf "Lokales System" wurde gestartet und dann angehalten."

Ich nehme an, dass für Variante 3 Benutzerrechte fehlen und der Dienst deshalb anhält.
Ich verstehe aber nicht, warum Variante 1 nicht funktioniert. Mache ich irgendwas bei der Eingabe des StartServiceName und des Passworts verkehrt?
Nico B. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win XP
Delphi 2006 Prof.
BeitragVerfasst: Di 26.01.10 09:42 
Hallo Leute,

ich habe meinen Fehler gefunden.
Ich habe meinen normalen Standardnutzer zum Probieren genommen, der war aber irgendwie nicht als Service-Benutzer vorgesehen. Deshalb hat Variante 1 nicht funktioniert.
Gelöst habe ich das ganze, indem ich im Service-Manager mit der rechten Maustaste auf den Dienst geklickt habe.
Anschließend Eigenschaften geöffnet, den Reiter "Anmelden" gewählt und noch mal manuell das Benutzerkonto samt Passwort angegeben. Daraufhin hat XP automatisch das Benutzerkonto angepasst.

Nun funktioniert´s also soweit.