Wie starte ich einen Dienst mit bestimmten Parametern? In einer anderen Frage habe ich gefunden
net start servicename blah
aber wenn ich das versuche, net
wirft mir ein syntaxfehler zu.
Was mache ich falsch?
Bearbeiten: Zur Klärungnet start servicename
funktioniert ganz gut, aber ich muss Parameter an den Dienst übergeben. Ich kann dies manuell tun,services.msc
indemichvor dem Starten des Dienstes einen Startparameter eingebe. Aber wie kann ich das aus einem Skript heraus machen?
Noch eine Änderung: Sorry, aber meine Frage war irreführend . In meinen Tests hatte ich viel mehr Parameter und es ist nicht das,/blah
net start
worüberich michbeschwere. In der Tat ist alles , was mit einem Schrägstrich beginnt, in Ordnung . Funktioniert alsonet start servicename /blah
,net start servicename blah
funktioniert nicht. Da ich brauchenet start servicename /foo bar
,bar
ist das das Problem.
/
. Danke vielmals!NET START
Ich bin der Meinung, dass Sie nach meinem Kenntnisstand keine willkürlichen Parameter übergeben können (anscheinend muss ihnen ein / vorangestellt werden). Der richtige Weg besteht darin, den entsprechenden Registrierungsschlüssel zu ändern und den Dienst zu stoppen / starten. Angenommen, Ihr benutzerdefinierter Dienst heißt MyService:In Wirklichkeit ist es jedoch besser, Ihre Konfiguration an einem Ort zu speichern, über den der Dienst Bescheid weiß, z. B. in der Registrierung oder im Dateisystem, und alle erforderlichen Werte zu lesen. Wie Sie sehen, ist das Anpassen der Befehlszeile etwas schmerzhafter als es sein sollte.
Wenn dies zufällig ein von .NET entwickelter Dienst ist, können Sie n Kopien der ausführbaren Datei auf Ihrem Dateisystem erstellen und diese automatisch aus der entsprechenden Datei app.config abrufen.
Es hört sich so an, als wären Sie möglicherweise zu weit außerhalb der Win32-Box gegangen. Da dies nach kundenspezifischer Entwicklung klingt, funktioniert jede der anderen angebotenen Lösungen, auch wenn dies möglicherweise nicht Ihr Ideal ist, ordnungsgemäß und ist ein sichererer Weg.
quelle
net start
nicht akzeptieren Parameter, sondern nur mit einem diejenigen beginnen/
.sc.exe
. Siehe grawitys Antwort (die ich damals irgendwie übersehen habe).Bei der Verwendung müssen Sie vor jedem Parameter einen Schrägstrich setzen
net start
. Stellen Sie außerdem sicher, dass Sie Parameter mit Leerzeichen angeben.quelle
net start servicename /foo
für ein einziges Argumentnet start servicename /"foo bar"
für eine Zeichenfolge oder eine Liste von ArgumentenHinweis : Diese Frage ist 8 Jahre alt, aber ich habe nicht den Ruf, die akzeptierte Antwort zu kommentieren, und dies ist immer noch ein Top-Google-Ergebnis im Jahr 2018, daher wollte ich klären, was jetzt in Bezug auf die endgültige Bearbeitung der Fragen funktioniert.
quelle
:-)
Sie müssen den tatsächlichen Dienstnamen verwenden, der in der Systemsteuerung unter Dienste angezeigt wird. Wenn es Leerzeichen enthält, müssen Sie den Dienstnamen in Anführungszeichen setzen.
Um den tatsächlichen Dienstnamen zu erhalten, geben Sie einfach
net start
ohne Parameter an der Eingabeaufforderung ein. Es sollte eine Liste aller ausgeführten Dienste enthalten, damit Sie den tatsächlichen Dienstnamen abrufen können. Dann nutzen Sie einfachnet start <servicename>
quelle
net start "my-service-name"
gut. Esnet start "my-service-name" /blah
gibt mir eine Fehlermeldung. Ich habe es auch versuchtnet start "my-service-name" -blah
und dies ist auch ein Syntaxfehler.Könnten InstSrv und SrvAny dabei helfen? Führer und Links
quelle