Comment démarrer un service avec certains paramètres? Dans une autre question, j'ai trouvé
net start servicename blah
mais si j'essaye, net
jette une erreur de syntaxe sur moi.
Qu'est-ce que je fais mal?
Edit: pour clarifier lesnet start servicename
travaux très bien, mais je dois passer des paramètres au service. Je peux le faire manuellement enservices.msc
remplissant un paramètre de démarrage avant de démarrer le service. Mais comment puis-je le faire à partir d'un script?
Un autre montage: Désolé, mais ma question était trompeuse . Dans mes tests, j'avais beaucoup plus de paramètres et ce n'est pas le/blah
net start
problème. En fait, tout ce qui commence par une barre oblique est très bien . Alors çanet start servicename /blah
marche,net start servicename blah
ça ne marche pas. Depuis que j'ai besoinnet start servicename /foo bar
, c'estbar
le problème.
/
. Merci beaucoup!NET START
ne vous permettra pas de passer des paramètres arbitraires pour autant que je sache (il semble qu'ils doivent être préfixés par un /), je crois que la bonne façon est de modifier la clé de registre appropriée et d'arrêter / démarrer le service. En supposant que votre service personnalisé s'appelle MyService:En réalité, une meilleure façon est de stocker votre configuration dans un endroit connu du service, comme le registre ou le système de fichiers, et de lire toutes les valeurs dont vous avez besoin. Comme vous pouvez le voir, la personnalisation de la ligne de commande est un peu plus pénible qu'elle ne devrait l'être.
S'il s'agit par hasard d'un service développé par .NET, vous pouvez créer n copies de l'exécutable sur votre système de fichiers et obtenir automatiquement les paramètres du fichier app.config approprié.
On dirait que vous êtes peut-être allé trop loin en dehors de la boîte Win32. Étant donné que cela ressemble à un développement personnalisé, toutes les autres solutions proposées, bien que ce ne soit peut-être pas votre idéal, fonctionneront correctement et constituent un moyen plus sûr.
la source
net start
/
sc.exe
. Voir la réponse de grawity (que j'ai en quelque sorte réussi à manquer à l'époque).Vous avez besoin d'une barre oblique avant chaque paramètre lors de l'utilisation
net start
. Assurez-vous également de citer les paramètres qui ont des espaces.la source
net start servicename /foo
pour un seul argumentnet start servicename /"foo bar"
pour une chaîne ou une liste d'argumentsRemarque : Cette question a 8 ans mais je n'ai pas la réputation de commenter la réponse acceptée et c'est toujours un résultat Google top en 2018, donc je voulais clarifier ce qui fonctionnait maintenant en ce qui concerne la modification finale des questions.
la source
:-)
Vous devez utiliser le nom de service réel tel qu'il apparaît dans le panneau de configuration, services. S'il contient des espaces, vous devez mettre des guillemets autour du nom du service.
Pour obtenir le nom du service réel, tapez simplement
net start
sans aucun paramètre à l'invite de commande. Il devrait vous donner une liste de tous les services en cours d'exécution afin que vous puissiez obtenir le nom réel du service. Ensuite, utilisez simplementnet start <servicename>
la source
net start "my-service-name"
bien. C'estnet start "my-service-name" /blah
ce qui me donne un message d'erreur. J'ai également essayénet start "my-service-name" -blah
et c'est aussi une erreur de syntaxe.InstSrv et SrvAny pourraient-ils aider à cela? Guide et liens
la source