¿Cómo inicio un servicio con ciertos parámetros? En otra pregunta que he encontrado
net start servicename bla
pero si intento esto, me net
arroja un error de sintaxis.
¿Qué estoy haciendo mal?
Editar: para aclararnet start servicename
funciona bien, pero necesito pasar parámetros al servicio. Puedo hacer esto manualmenteservices.msc
al completar un parámetro de inicio antes de comenzar el servicio. Pero, ¿cómo puedo hacer esto desde un script?
Otra edición: Lo siento, pero mi pregunta fue engañosa . En mis pruebas, tuve muchos más parámetros y no son las/blah
net start
quejas. De hecho, cualquier cosa que comience con una barra está bien . Entoncesnet start servicename /blah
funciona,net start servicename blah
no funciona. Como lo necesitonet start servicename /foo bar
,bar
ese es el problema.
/
. ¡Muchas gracias!NET START
no le permitirá pasar parámetros arbitrarios hasta donde yo sé (parece que tienen que tener el prefijo con un /), creo que la forma correcta es modificar la clave de registro adecuada y detener / iniciar el servicio. Asumiendo que su servicio personalizado se llama MyService:Realmente, sin embargo, una mejor manera es almacenar su configuración en algún lugar que el servicio conozca, como quizás el registro o el sistema de archivos, y leer los valores que necesite. Como puede ver, personalizar la línea de comandos es un poco más doloroso de lo que debería ser.
Si por casualidad se trata de un servicio desarrollado por .NET, puede crear n copias del archivo ejecutable en su sistema de archivos y hacer que cada uno obtenga automáticamente los parámetros del archivo app.config apropiado.
Parece que te has alejado demasiado del cuadro Win32. Dado que esto suena como un desarrollo personalizado, cualquiera de las otras soluciones ofrecidas, aunque quizás no sea su ideal, funcionará correctamente y es una forma más segura de hacerlo.
fuente
net start
no aceptar parámetros, pero sólo los que se inician con una/
.sc.exe
. Vea la respuesta de Grawity (que de alguna manera logré perder en ese entonces).Necesita una barra inclinada antes de cada parámetro cuando se usa
net start
. También asegúrese de citar los parámetros que tienen espacios.fuente
net start servicename /foo
por un solo argumentonet start servicename /"foo bar"
para una cadena o lista de argumentosNota : Esta pregunta tiene 8 años, pero no tengo la reputación de comentar sobre la respuesta aceptada y este sigue siendo un resultado importante de Google en 2018, por lo que quería aclarar qué funcionaba ahora con respecto a la edición final de las preguntas.
fuente
:-)
Debe usar el nombre real del servicio tal como aparece en el panel de control, servicios. Si contiene espacios, debe poner comillas alrededor del nombre del servicio.
Para obtener el nombre real del servicio, simplemente escriba
net start
sin ningún parámetro en el símbolo del sistema. Debería darle una lista de todos los servicios en ejecución para que pueda obtener el nombre real del servicio. Entonces solo usanet start <servicename>
fuente
net start "my-service-name"
bien Es lonet start "my-service-name" /blah
que me da un mensaje de error. También lo he intentadonet start "my-service-name" -blah
y esto también es un error de sintaxis.¿Podrían InstSrv y SrvAny ayudar en esto? Guía y enlaces
fuente