Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Installieren eines Services über CMD Eingabe (https://www.delphipraxis.net/177323-installieren-eines-services-ueber-cmd-eingabe.html)

Andidreas 31. Okt 2013 09:09

Installieren eines Services über CMD Eingabe
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich versuche einen Service den ich Programmiert habe auf meinem Notebook zu installieren.
Hierfür öffne ich die CMD Exe als Administrator und geben den folgenden Befehl ein:

Code:
sc create DELGSRV_00 binPath= "C:\LOG_Services\DELGSRV00.exe" DisplayName= "Supervision Services" start= auto
Der Service wird in meinem fall nicht installiert und ich erhalte die Befehlsbeschreibung im DOS Fenster, woran liegt das?

DeddyH 31. Okt 2013 09:43

AW: Installieren eines Services über CMD Eingabe
 
Und was passiert, wenn Du die Leerzeichen nach den jeweiligen "=" weglässt?

Union 31. Okt 2013 09:46

AW: Installieren eines Services über CMD Eingabe
 
Nee, die Blanks müssen sein! Ich vermute mal eher (das ist in dem screenprint nicht genau zu sehen) dass vor dem auto eines fehlt?

DeddyH 31. Okt 2013 09:47

AW: Installieren eines Services über CMD Eingabe
 
Stimmt, ich hab nochmal nachgesehen. Allerdings steht vor dem auto ja eins, zumindest wenn die Eingabe mit dem Code übereinstimmt.

baumina 31. Okt 2013 09:49

AW: Installieren eines Services über CMD Eingabe
 
Ich habe mal gelesen, dass es manchmal hilft ganz am Ende der Zeile noch ein Leerzeichen dazuzugeben (also hinter start= auto) noch eins.

EDIT : oder es liegt an der Groß-/Kleinschreibung -> mal alles klein schreiben:

Code:
sc create DELGSRV_00 binpath= "C:\LOG_Services\DELGSRV00.exe" displayname= "Supervision Services" start= auto

OlafSt 31. Okt 2013 11:38

AW: Installieren eines Services über CMD Eingabe
 
Die Leerzeichen sind das Problem, denn sie haben dort nichts, aber auch gar nichts zu suchen. Leerzeichen dienen als Parametertrenner, ergo ergibt der Aufruf wie oben dargestellt, folgenden Paranetersatz:

create Der ist ein gültiger Parameter
DELGSRV_00 Ist auch gültig
binpath= Der BinPath-Parameter ist leer
"C:\LOG_Services\DELGSRV00.exe" Mit diesem Parameter kann SC nun nix mehr anfangen und zeigt die Optionen
displayname=
"Supervision Services"
start=
auto

Mach die Leerzeichen vor den Gleichzeichen weg und das ganze funzt. Eben wegen dieser Problematik müssen Parameter, die Leerzeichen enthalten, in Anführungszeichen gesetzt werden:

cd Prog001 -> kein Problem
cd ProgrammeEigeneDateien -> kein Problem
cd Programme\Eigene Dateien -> Ärger wegen Leerzeichen
cd Programme\"Eigene Dateien" -> kein Problem

DeddyH 31. Okt 2013 12:06

AW: Installieren eines Services über CMD Eingabe
 
Das solltest Du dann Microsoft auch vorwerfen, denn dort werden durchgängig Leerzeichen eingesetzt.

baumina 31. Okt 2013 12:06

AW: Installieren eines Services über CMD Eingabe
 
EDIT : gelöscht

OlafSt 31. Okt 2013 13:06

AW: Installieren eines Services über CMD Eingabe
 
Zitat:

Zitat von DeddyH (Beitrag 1233963)
Das solltest Du dann Microsoft auch vorwerfen, denn dort werden durchgängig Leerzeichen eingesetzt.

Vermutlich geht es um diesen Abschnitt hier:
Zitat:

Syntax
sc [Servername] create Servicename [Optionname= Optionvalue...
Da ist ein Leerzeichen nach dem "=". Jo. Das dient der Lesbarkeit, denn: Hätte man etwas aufmerksamer weitergelesen, dann wäre einem aufgefallen:

Zitat:

type=own, share, interact, kernel, filesys
Typ des zu erstellenden Dienstes. Zu den möglichen Werten gehören von Treibern verwendete Typen.
(Standard = share)

start=boot, system, auto, demand, disabled
Starttyp für den Dienst. Zu den möglichen Werten gehören von Treibern verwendete Typen.
(Standard = demand)

error=normal, severe, critical, ignore
Schweregrad des Fehlers, wenn der Dienst beim Booten nicht gestartet wird.
(Standard = normal)

binPath=(string)
Pfadname zur Binärdatei des Dienstes. Es gibt keinen Standardwert für diesen Parameter. Diese Zeichenfolge muss angegeben werden.

group=(string)
Name der Gruppe, deren Mitglied der betreffende Dienst ist. Die Liste der Gruppen ist in der Registrierung unter "ServiceGroupOrder" gespeichert.
(Standard = nichts)

tag=(string)
{ und so weiter }
Da ist nirgendwo ein Leerzeichen nach dem "=".

DeddyH 31. Okt 2013 13:16

AW: Installieren eines Services über CMD Eingabe
 
Man nehme 2 gesunde Augen und schaue sich das Beispiel am Ende der Seite an:
Zitat:

sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
Ich hab mir extra die Brille geputzt: nach dem "binpath=" folgt ein Leerzeichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Seite 1 von 2  1 2      

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