sventtke
Goto Top

Beliebigen Dienst mittels einfachem Script starten u. stoppen

Ich suche nach einer Möglichkeit, mittels einfacher (CMD-) Scripte bestimmte Dienste, die nur für bestimmte Programme benötigt werden, zu starten oder zu stoppen.
Ich nutze bereits ein solches Script, um mittels den Befehlen "Net start"/"Net stop" die Dienste für meinen VPN-Client (SecuRemote von CheckPoint) zu starten oder zu stoppen. Das funktioniert wunderbar, aber leider lassen sich einige andere Dienste NICHT auf diese Weise behandeln. Es passiert schlichtweg gar nichts, außer das das CMD-Fenster ganz kurz aufspringt und wieder verschwindet.
Ich kann keinen Unterschied zu den SecuRemote-Diensten erkennen: die Dienste sind immer auf "Manuell" gestellt, die CMD-Scripts sind bis auf den Dienstnamen identisch.
Bei meiner bisherigen Recherche bin ich stehts wieder bei den oben genannten Befehlen gelandet.
Was kann hier das Problem sein?
Gibt es noch andere, ebenso einfache Lösungen, die funktionieren?

Wäre sehr dankbar für eure Hilfe!

Ciao

Sven

Content-ID: 106547

Url: https://administrator.de/contentid/106547

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Kosh
Kosh 20.01.2009 um 12:23:30 Uhr
Goto Top
Gibst du bei net start und net stop auch den Dienstnamen mit und nicht das file mit dem der dienst läuft?
zB
net stop Druckwarteschlange

Sind im Namen vielleicht Leerzeichen?

Dann:
net start "Mein Dienst"  

Mach mal ein
pause
am ende deines Skripts.
Dann bleibt das CMD Fenster offen und man siehst die Fehlermeldung.
sventtke
sventtke 20.01.2009 um 13:11:58 Uhr
Goto Top
Hi,

ja, ich verwende definitiv den Dienstnamen (aus Eigenschaften unter Dienste), nicht die entsprechende Datei. Der Dienstname enthält auch keine Leerzeichen (net start IkClassAds).
Der Trick mit der Pause hat folgendes ergeben:

Systemfehler 1060 aufgetreten.

"
Der angegebene Dienst ist kein installierter Dienst.

Kannst du damit was anfangen?
"
Kosh
Kosh 20.01.2009 um 13:25:32 Uhr
Goto Top
Der angegebene Dienst ist kein installierter Dienst = Dienstname falsch im Script angegeben.

Gib mal nur
net start
ein (wenn der Dienst läuft).

Dann siehst du alle Dienstnamen die Laufen.
Kopier den Namen für dein Skript aus dieser Liste raus.
sventtke
sventtke 20.01.2009 um 15:08:51 Uhr
Goto Top
Der Dienst (wie auch alle anderen Dienste) wird in diesem Fall mit seinem vollen (Anzeige-) Namen angezeigt: "National Instruments PSP Server Locator"
Der Befehl "Net start" funktioniert damit nicht (Meldung: "Die Syntax für diesen Befehl lautet..."), vermutlich weil der Dienstname in dem Fall Leerzeichen enthält.
Bei dem funktionierenden Script für SecuRemote habe ich auch den unter Diensteigenschaften gelisteten Dienstnamen (nicht Anzeigenamen) benutzt, und der lautet in dem Fall "IkClassAds".
Aber damit kommt es halt zu der Fehlermeldung "...kein installierter Dienst".
Hast du noch eine Idee?
Kosh
Kosh 21.01.2009 um 08:33:45 Uhr
Goto Top
Zitat von @sventtke:
Der Befehl "Net start" funktioniert damit nicht (Meldung:
"Die Syntax für diesen Befehl lautet..."), vermutlich
weil der Dienstname in dem Fall Leerzeichen enthält.

Und du hast bestimmt die "" <----- Gänsefüsschen bei
net start "Mein Dienst"  
benutzt?
sventtke
sventtke 21.01.2009 um 09:44:25 Uhr
Goto Top
Ne, das kann auch nicht der Grund sein. Hier siehst du das Script für VPN, das einwandfrei funktioniert:

@echo Dienste für SecuRemote Client werden gestartet:
@echo -----------------------------------------------
echo.
net start SR_Service
net start SR_WatchDog

Und hier nun das Script, das nicht funktioniert:

@echo Dienste für SecuRemote Client werden gestartet:
@echo -----------------------------------------------
echo.
net start IkClassAds
pause

Die erste Zeile ist natürlich noch ein Relikt aus der Kopie, aber das kann nicht relevant sein. Die Dienstnamen sind korrekt und stammen aus der selben Quelle (Dienstname aus Eigenschaften im Diensteportal).

Es muss noch ne andere Ursache geben.
Kosh
Kosh 21.01.2009 um 10:19:19 Uhr
Goto Top
Wie gesagt.
Wenn du "net start" eingibst, dann aus dieser Liste den Dienstnamen kopierst, und diesen dann mit
net start "Dienstname mit Leerzeichen" <--- Betonung auf die Gänsefüsschen
startest, MUSS es gehen.
sventtke
sventtke 21.01.2009 um 10:50:53 Uhr
Goto Top
Jetzt hab ichs kapiert!!
Wenn ich den Dienst-Anzeigenamen (also gewissermaßen die lange Version, die man erhält, wenn man net start eingibt) verwende und IN GÄNSEFÜSSE setze, dann klappt es.

Danke für die Hilfe!!!
Kosh
Kosh 21.01.2009 um 10:58:59 Uhr
Goto Top
Ja ab und zu darfs auch mal an der Leitung liegen face-smile

Gern geschehen. Und bitte nicht vergessen den Beitrag als gelöst zu markieren.

cu
sventtke
sventtke 21.01.2009 um 10:59:52 Uhr
Goto Top
Hi,

noch ne Frage: wie kann ich in einem CMD-Script eine eingetragene net start-Befehlszeile vorübergehend auf inaktiv setzen, ohne sie rauszulöschen?
Kosh
Kosh 21.01.2009 um 11:04:17 Uhr
Goto Top
mit REM

rem net send "hurra"  
sventtke
sventtke 21.01.2009 um 11:20:31 Uhr
Goto Top
Danke für die Hilfe, so klappts!