Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dienst aktualisieren (https://www.delphipraxis.net/129712-dienst-aktualisieren.html)

MacKleriker 24. Feb 2009 15:31

Re: Dienst aktualisieren
 
Ne,
ich meinte, dass man einen Dienst nicht mit einem Netzwerkpfad installieren kann.
Der dienst wird zwar installiert, man kann ihn aber nicht starten! (Soweit ich das probiert hab)

Mit CreateProcess bzw. CreateProcessAsUser mit LogonUser davor hab ichs auch schon versucht, aber das funzt ja auch nicht.

Gibts denn keine andere Lösung?


Dankä!

nahpets 24. Feb 2009 15:47

Re: Dienst aktualisieren
 
Hallo,
Zitat:

Zitat von MacKleriker
Ne,
ich meinte, dass man einen Dienst nicht mit einem Netzwerkpfad installieren kann.
Der dienst wird zwar installiert, man kann ihn aber nicht starten! (Soweit ich das probiert hab)

Mit CreateProcess bzw. CreateProcessAsUser mit LogonUser davor hab ichs auch schon versucht, aber das funzt ja auch nicht.

Gibts denn keine andere Lösung?


Dankä!

die Batchdatei kopiert doch die EXE des Dienstes nach C:\Windows..., das sollte doch funktionieren, ggfls. musst Du auf dem Dienstverzeichnise entsprechende Rechte für den Netzwerkdienst einrichten.

WoGe 24. Feb 2009 15:54

Re: Dienst aktualisieren
 
Zitat:

ich meinte, dass man einen Dienst nicht mit einem Netzwerkpfad installieren kann.
Steht so - glaub ich - auch bei MS.
Ist ja auch logisch, weil Dienste ja auch starten können (müssen) wenn gerade mal kein Netzwerk da ist.
Der Dienst befindet sich indem das Verzeichnis aus dem der Dienst installiert wird.

Gruss
wo

MacKleriker 25. Feb 2009 08:19

Re: Dienst aktualisieren
 
Guten Morgen.

Also ist das schon mal nicht ganz so optimal mit den Netzwerkpfaden...
Aber wie könnte man so etwas sonst lösen?
Irgendeine Möglichkeit muss es doch geben um einen Dienst sauber, selbstständig und sicher zu aktualisieren, auch im Netzwerk?!

Danke!

Thomas83 25. Feb 2009 14:15

Re: Dienst aktualisieren
 
Dienst schaut alle x sekunden nach ob es ein update gibt (z.B. webseite, netzwerk etc.)
wenn es eine neue version gibt. Updater starten
updater beendet dienst
kopiert neue datei
startet den dienst

das müste eigentlich eine sinvolle Lösung sein, oder?

SirThornberry 25. Feb 2009 14:28

Re: Dienst aktualisieren
 
Zitat:

Zitat von Thomas83
Dienst schaut alle x sekunden nach ob es ein update gibt (z.B. webseite, netzwerk etc.)
wenn es eine neue version gibt. Updater starten
updater beendet dienst
kopiert neue datei
startet den dienst

das müste eigentlich eine sinvolle Lösung sein, oder?

Kann es sein das du den Thread hier nicht vollständig gelesen hast?
Wenn der Dienst unter dem Konto Netzwerkdienst läuft kann er zwar das neue Update vom Netzwerk lesen aber das Konto Netzwerkdienst hat standardmäßig eben keine Rechte um im Windowsverzeichnis das update zu plazieren.

Meiner Meinung nach gibt es keine Möglichkeit unter Verwendung eines Kontos was entweder nur Rechte für das eine oder nur Rechte für das andere hat. Du braucht entweder ein Konto was für beides die Rechte hat oder du musst eben die Berechtigungen anpassen.

Ich weiß nicht um was für einen Dienst es sich genau handelt und ob es erlaubt ist das dieser nicht läuft wenn das Netzwerk nicht erreichbar ist. Ich würde (wenn der Dienst nicht zwangsläufig immer laufen muss sondern nur wenn Netzwerk vorhanden ist) die gesamte Logic des Dienstes in eine DLL auslagern und diese vom Dienst laden lassen. Dadurch kann der Dienst die Logic aktuallisieren ohne sich selbst beenden zu müssen und es bleibt die Möglichkeit das die Logic auf dem Letzlaufwerk liegen bleiben kann. Sozusagen kann der Dienst dann schauen welches die aktuellste DLL im Netzwerkpfad ist und diese Laden. Kommt eine aktuellere hinzu lädt er diese.

Thomas83 25. Feb 2009 14:34

Re: Dienst aktualisieren
 
Zitat:

Zitat von SirThornberry
Kann es sein das du den Thread hier nicht vollständig gelesen hast?

lol doch gelesen aber irgend wie nich wahrgenommen....

Zitat:

Zitat von nahpets
Hallo,
Mache auf das Verzeichnis des Dienstes eine Freigabe, z. B.: DienstName$. Durch das $ am Ende wird es eine versteckte Freigabe, die im Explorer nicht zu sehen ist.

Dann halt per Freigabe wo das Konto die Rechte hat.
Man installiert den Dienst auf C:\windows\meinProgramm
und bei der Freigabe meinProgramm$ kannste den Dienst kopieren und wieder starten.

Kirchi 25. Feb 2009 15:18

Re: Dienst aktualisieren
 
Muss der Dienst eigentlich mit dem Netzwerkdienste-User laufen :?:

Du kannst ja auch den Dienst unter dem System laufen lassen und bei der Freigabe in den Sicherheitseinstellungen die Computer bzw. eine Computergruppe den Zugriff gewähren. Somit kannst Du auf den UNC-Pfad zugreifen und auf das Windows Verzeichnis.

SirThornberry 25. Feb 2009 16:09

Re: Dienst aktualisieren
 
Der Dienst muss mit dem Netzwerkdienstuser laufen damit er Zugriff/Berechtigungen auf Netzwerkressourcen hat :-)

Kirchi 26. Feb 2009 17:03

Re: Dienst aktualisieren
 
Muss nicht. Ich habe Dienste mit System Rechten laufen, die auch auf Netzwerkresourcen zugreifen können. Wir haben hier Windows XP mit Server 2003 im Einsatz und unsere Dienste können ohne Probleme auf die Resourcen zugreifen. Wie bereits erwähnt, muss man bei den Resource definieren welche Computer bzw. Computergruppen Zugriff haben dürfen. Liegt wahrscheinlich da dran, dass jeder PC auch seinen eigenen Account in der Domäne hat.

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz