¿Cómo inicio un servicio con ciertos parámetros? En otra pregunta que he encontrado
net start servicename bla
pero si intento esto, me netarroja un error de sintaxis.
¿Qué estoy haciendo mal?
Editar: para aclararnet start servicenamefunciona bien, pero necesito pasar parámetros al servicio. Puedo hacer esto manualmenteservices.mscal 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 startquejas. De hecho, cualquier cosa que comience con una barra está bien . Entoncesnet start servicename /blahfunciona,net start servicename blahno funciona. Como lo necesitonet start servicename /foo bar,barese es el problema.

/. ¡Muchas gracias!NET STARTno 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 startno 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 /foopor 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 startsin 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" /blahque me da un mensaje de error. También lo he intentadonet start "my-service-name" -blahy esto también es un error de sintaxis.¿Podrían InstSrv y SrvAny ayudar en esto? Guía y enlaces
fuente