Siempre busco formas eficientes de gestionar las tareas del sistema sin salir del terminal, incluso cuando uso Windows. En Windows, los servicios se ejecutan en segundo plano para que el sistema y las aplicaciones funcionen sin problemas. En lugar de abrir el Administrador de servicios, prefiero administrar los servicios de Windows a través de la línea de comando. En esta guía, exploraremos estos métodos y veremos cómo puede administrar los servicios de Windows directamente desde la terminal.
1. Administre los servicios de Windows con sc.exe
sc.exe es una herramienta de línea de comandos incorporada para administrar los servicios de Windows. Permite configurar, consultar y controlar servicios directamente desde el terminal. Con sc.exe, obtienes control total sobre los servicios de Windows sin necesidad del Administrador de servicios gráfico.
Comprobación del estado del servicio con sc
Podemos usar elsc query serviceNamecomando para verificar el estado de un servicio específico. Por ejemplo, ejecutamos elsc query MySQL80comando para recuperar detalles sobre el servicio MySQL80, incluido su estado:

Actualmente, MySQL no se ejecuta en nuestra máquina.
Iniciar un servicio con sc
Para iniciar un servicio específico usando sc.exe, podemos usar elsc start ServiceNamedominio. Por ejemplo, ejecutamossc start MySQL80para iniciar el servicio MySQL80. Para verificar si el servicio se ha iniciado exitosamente, podemos verificar su estado usando elsc query MySQL80dominio:

Detener un servicio con sc
Puede detener un servicio para liberar recursos del sistema. Por ejemplo, el comandosc stop MySQL80detiene MySQL, lo cual se puede verificar usando elsc query MySQL80dominio:

Creando un nuevo servicio con sc
Podemos crear un nuevo servicio usando elsc createdominio. Esto requiere especificar el nombre del servicio, la ruta ejecutable y el tipo de inicio. Por ejemplo, para crear un nuevo servicio llamado "mte" que se iniciará automáticamente al arrancar, escriba:
sc create mte binPath= "C:\Users\HP\Desktop\Examples\Service.exe" start= auto
Actualizar un servicio con sc
Podemos usar elsc configcomando para configurar un servicio existente. Por ejemplo, para cambiar el tipo de inicio a manual, ejecute el comando:
sc config serviceName start= demand
Eliminar un servicio con sc
Una vez que un servicio ya no es necesario, podemos eliminarlo permanentemente de Windows usando el comando:
sc delete srviceName
2. Administre los servicios de Windows con Net Command
ElnetEl comando en Windows nos permite administrar servicios desde la línea de comando. Permite a los usuarios iniciar, detener, pausar, reanudar y consultar servicios sin utilizar el Administrador de servicios gráfico.
Iniciar y detener el servicio con el comando net
Podemos iniciar o detener los servicios de Windows con elnet start serviceNameynet stop serviceNamecomandos, respectivamente:

Pausar y reanudar servicios con el comando net
Algunos servicios de Windows admiten pausar y reanudar en lugar de detenerlo por completo. En ese caso, podemos utilizar elnet pause ServiceNameynet continue ServiceNamecomandos, respectivamente:

Comprobación del estado del servicio con el comando net
El comando net en sí no proporciona una forma directa de verificar el estado de un servicio específico, pero podemos usarlo junto con elfindstrcomando para filtrar los resultados. Por ejemplo, para comprobar si el servicio especificado se está ejecutando, escriba:
net start | findstr "ServiceName"
Si el servicio especificado se está ejecutando, el comando devuelve su nombre; de lo contrario, no hay salida.
Administre servicios de forma remota con net command
Podemos usar el comando net para administrar servicios en computadoras remotas especificando el nombre de la computadora. Por ejemplo, elnet start ServiceName /S RemotePCynet stop ServiceName /S RemotePCLos comandos se utilizan para iniciar o detener servicios en una computadora remota.
3. Administre los servicios de Windows con cmdlets de PowerShell
PowerShell ofrece un control más avanzado sobre los servicios de Windows con funciones integradas.como Get-Service, Start-Service, Stop-Service y Restart-Service. Estos cmdlets permiten a los usuarios verificar el estado de un servicio, iniciarlo o detenerlo e incluso reiniciarlo cuando sea necesario.
Los cmdlets de PowerShell proporcionan resultados detallados, incluido el estado del servicio, el nombre para mostrar y los servicios dependientes. Estos cmdlets permiten secuencias de comandos y automatización, lo que los hace útiles para administrar múltiples servicios de manera eficiente.
La flexibilidad y las potentes funciones de PowerShell la convierten en la herramienta preferida por los administradores que administran los servicios de Windows.
Obtener el estado del servicio con cmdlets
Podemos usar elGet-Service -Name ServiceNamecmdlet para obtener los detalles sobre el servicio especificado. Por ejemplo, el siguiente comando devuelve el estado del servicio MySQL80, mostrando si está ejecutándose o detenido:
Get-Service -Name MySQL80
Consulta de servicios con cmdlets de PowerShell
Podemos usar elGet-ServiceComando para consultar los servicios según criterios específicos. Por ejemplo, podemos recuperar todos los servicios actualmente en ejecución usando el comando:
Get-Service | Where-Object {$_.Status -eq 'Running'}
Iniciar y detener servicios con cmdlets de PowerShell
Podemos iniciar o detener un servicio específico usando elStart-ServiceyStop-Servicecmdlets respectivamente. Por ejemplo, usamos comandos de PowerShell para iniciar, detener y verificar el estado del servicio MySQL80:
Start-Service -Name MySQL80
Stop-Service -Name MySQL80
Get-Service -Name MySQL80
Cambiar el tipo de inicio del servicio con cmdlets de PowerShell
Los cmdlets de PowerShell nos permiten actualizar el tipo de inicio del servicio. Por ejemplo, podemos ejecutar los siguientes cmdlets para configurar un servicio para que se inicie automáticamente con el sistema, requiera inicio manual o se deshabilite, respectivamente:
Set-Service -Name ServiceName -StartupType Automatic
Set-Service -Name ServiceName -StartupType Manual
Set-Service -Name ServiceName -StartupType DisabledEstos cmdlets ayudan a los administradores a administrar el comportamiento del servicio de manera eficiente, lo que garantiza que los servicios esenciales se inicien según sea necesario mientras.
Administrar servicios remotos con cmdlets
PowerShell también permite administrar servicios en computadoras remotas especificando los nombres de las computadoras remotas. Por ejemplo, elGet-Service -Name ServiceName -ComputerName RemotePCEl comando recupera el estado de un servicio específico que se ejecuta en una computadora remota llamada RemotePC, lo que permite a los administradores monitorear los servicios de forma remota.
De manera similar, elRestart-Service -Name ServiceName -ComputerName serviceNameEl comando intenta reiniciar el servicio especificado en una computadora remota. Garantiza que el servicio se reinicie sin requerir acceso directo a la máquina. Sin embargo, la administración remota de servicios requiere permisos adecuados y la habilitación de la comunicación remota de PowerShell.
4. Automatizar las tareas de gestión de servicios
Los scripts de PowerShell permiten, lo que facilita la supervisión y el control de los servicios de Windows sin intervención manual. Podemos crear un script que verifique continuamente el estado de un servicio específico y lo reinicie si se detiene inesperadamente.
Por ejemplo, el siguiente script comprueba si el servicio MySQL80 se está ejecutando y lo reinicia si está detenido:
$serviceName = "MySQL80"
$service = Get-Service -Name $serviceName
if ($service.Status -ne "Running") {
Restart-Service -Name $serviceName -Force
Write-Output "$serviceName was stopped and has been restarted."
} else {
Write-Output "$serviceName is already running."
}De forma predeterminada, Windows restringe la ejecución de scripts. Para habilitar la ejecución, primero ejecute el comando:
Set-ExecutionPolicy RemoteSigned
Ahora navegue hasta la ubicación del script y ejecute el.\serviceScript.ps1comando para ejecutar el script:

Administrar los servicios de Windows desde la línea de comandos le brinda control total sin depender del Administrador de servicios gráfico. Ya sea que utilice cmdlets sc.exe, net o PowerShell, cada método ofrece formas eficientes de iniciar, detener y configurar servicios.
Las capacidades de secuencias de comandos de PowerShell facilitan la automatización, permitiéndole monitorear y administrar servicios sin problemas. Al dominar estas herramientas, podrá solucionar problemas, optimizar el rendimiento del sistema y garantizar que los servicios críticos funcionen sin problemas.
Para conocer más formas de optimizar su sistema Windows y solucionar problemas comunes, consulte estas guías eny.
