¿Cómo reinicio un servicio en una máquina remota en Windows? [cerrado]

138

A veces, durante la depuración, necesito reiniciar un servicio en una máquina remota. Actualmente, estoy haciendo esto a través de Escritorio remoto. ¿Cómo se puede hacer desde la línea de comandos en mi máquina local?

Josh Kodroff
fuente
1
Ninguna de estas respuestas explica cómo hacer el inicio remoto, mientras maneja los permisos de usuario necesarios para ejecutar la llamada de servicio.
djangofan

Respuestas:

206

Puede usar la consola de servicios, hacer clic en el lado izquierdo y luego seleccionar la opción "Conectarse a otra computadora" en el menú Acción.

Si desea usar solo la línea de comando, puede usar

sc \\machine stop <service>
Vinko Vrsalovic
fuente
1
Funciona perfectamente desde cmd.exe. No funciona en PowerShell, probablemente debido al error \\, sigue: Establecer contenido: no se puede encontrar un parámetro que coincida con el nombre del parámetro '[el nombre del servicio]'. El único inconveniente menor es que lo devuelve a la línea de comando antes de que finalice la operación.
Josh Kodroff
44
dado que el comando sc funciona de forma asíncrona, si necesita ejecutar un script para reiniciar el servicio, eche un vistazo a los scripts por lotes que
publiqué
66
En Powershell necesitas usar sc.exe \\machine stop <service>. De lo contrario, creo que sc se refiere a un comando diferente.
CJBrew
55
¿Cuál es el conjunto mínimo de permisos necesarios para que un usuario inicie un servicio remoto específico en la computadora remota?
huseyint
+1 esto funciona sin problemas en powershell, al contrario de cosas como Invoke-Command \\ remote_machine {Start-Service ...} (que requiere Windows Remote Management configurado en remote_machine), y gana a PsTools en que viene sc.exe de forma predeterminada con la instalación de Windows
hello_earth
41

Puedes usar mmc:

  1. Empieza a correr. Escriba "mmc".
  2. Archivo / Agregar / Eliminar complemento ... Haga clic en "Agregar ..."
  3. Busque "Servicios" y haga clic en "Agregar"
  4. Seleccione "Otra computadora:" y escriba el nombre de host / dirección IP de la máquina remota. Haga clic en Finalizar, Cerrar, etc.

En ese momento, podrá administrar los servicios como si estuvieran en su máquina local.

Ryan Duffield
fuente
1
Vaya, no vi el requisito de "línea de comando".
Ryan Duffield
77
¿Qué puerto (s) necesitaría desbloquear en mi servidor?
The Muffin Man
2
Esto es oro Siempre he estado accediendo a servidores de forma remota para manejar servicios. Ahora con esto puedo tener una lista de diferentes servidores dentro de la misma consola.
Alan
9

Puede utilizar el comando PSEXEC de System Internals para ejecutar de forma remota un servicio net stop , y luego net start yourervice

Philibert Perusse
fuente
PSService también es útil. Hay mucho poder en esas herramientas.
Brad Bruce el
7

Usando la línea de comando, puedes hacer esto:

AT \\computername time "NET STOP servicename"
AT \\computername time "NET START servicename"
Andrew Moore
fuente
55
Para que quede claro, el comando "AT" utiliza el programador de Windows para programar un comando. es excesivo para crear una secuencia de comandos de varios comandos remotos y no garantiza el orden de ejecución o la finalización del comando antes del siguiente comando. El comando SC es mucho mejor para esto. Eche un vistazo a los scripts por lotes que
publiqué
1

Te sugiero que eches un vistazo a RSHD

No necesita preocuparse por un cliente, Windows lo tiene por defecto.

tafa
fuente
0

Bueno, si tiene Visual Studio (sé que es en 2005, aunque no estoy seguro de las versiones anteriores), puede agregar la máquina remota a su etiqueta "Server Explorer". En ese momento, tendrá acceso a los SERVICIOS que se ejecutan, o se pueden ejecutar, desde esa máquina (así como registros de eventos y colas, y un par de otras cosas interesantes).

Stephen Wrighton
fuente
Curiosamente, esto funciona en VS2005 pero NO en VS2008. Todavía puede NAVEGAR los servicios, pero ya no puede iniciarlos ni detenerlos directamente. En lugar de esto, puede hacer clic con el botón derecho en el nodo Servicios e iniciar el Administrador de servicios para ese host.
Peter Wone
0

Una forma sería habilitar el servidor Telnet en la máquina en la que desea controlar los servicios (agregar / quitar componentes de Windows)

Abrir el indicador de dos
Escriba telnet yourmachineip / name
Inicie sesión
escriba net start & serviceName * eg w3svc

Esto iniciará IIS o puede usar net stop para detener un servicio.

Dependiendo de su configuración, debe buscar una forma de asegurar la conexión telnet, ya que creo que no está encriptada.

alexmac
fuente
2
Telnet definitivamente no está encriptado.
Josh Kodroff
0

Varias buenas soluciones aquí. Si todavía está en Win2K y no puede instalar nada en la computadora remota, esto también funciona:

Abra la Consola de administración de la computadora (haga clic con el botón derecho en Mi PC, elija Administrar; abra desde Herramientas administrativas en el menú Inicio; o abra desde la MMC usando el complemento).

Haga clic derecho en el nombre de su computadora y elija "Conectar a computadora remota"

Ingrese el nombre y las credenciales de la computadora y tendrá acceso completo a muchas funciones de administración, incluido el panel de control de servicios.


fuente