¿Cómo crear un servicio de Windows? - 3 - noviembre 9, 2022

¿Cómo crear un servicio de Windows?

A veces, necesita una aplicación o script para seguir ejecutándose, ya sea que haya iniciado sesión en su computadora o no. Tal vez sea un script de PowerShell para monitorear puertos o un servidor web que aloja una página en su red doméstica.

¿Cómo crear un servicio de Windows? - 5 - noviembre 9, 2022

El punto es que si desea que un proceso, secuencia de comandos o programa se ejecute mientras la computadora esté encendida, deberá crear un servicio de Windows.

¿Qué necesito para crear un servicio de Windows?

Para crear un servicio de Windows en Windows 10, existen algunos requisitos previos:

  • Acceso de administrador en la computadora
  • Algo para ejecutar como un servicio (PowerShell Script, programa, etc.)
  • Administrador de servicios sin succión (NSSM) instalado

¿Qué es el administrador de servicios sin succión?

Sí, no puedes soltar un nombre como ese sin explicarlo. Claro que el nombre es desafortunado, pero es exacto. Podría decirse que Non-Sucking Service Manager (NSSM) es la forma más fácil de crear un servicio de Windows que sea altamente confiable y configurable. Además, es un software gratuito y de código abierto (OSS).

¿Cómo crear un servicio de Windows? - 7 - noviembre 9, 2022

NSSM se puede utilizar a través del símbolo del sistema de Windows o una interfaz gráfica de usuario (GUI). Esto significa que cualquiera puede usarlo. NSSM se puede usar en cualquier versión de Windows desde Windows 2000 inclusive. Hay versiones de 32 y 64 bits. Si está utilizando una computadora de 64 bits, pruebe primero con esa versión. Si no funciona, recurra a la versión de 32 bits.

Puede descargar NSSM desde el sitio web, clonar NSSM desde Git o instalar NSSM con Chocolatey. Chocolatey es un administrador de paquetes para Windows. Los métodos de instalación variarán según la ruta que tome. Consulte las instrucciones de NSSM. Para nuestro ejemplo, lo descargamos desde el sitio web de NSSM y lo instalamos en C:WINDOWSsystem32 .

Crear un servicio de Windows con NSSM

Para este ejemplo, crearemos un servicio a partir de un script de PowerShell para registrar el porcentaje de carga promedio de la CPU.

  • Copie y guarde este script como log-CPULoadPercentage.ps1 en un lugar al que nadie más pueda acceder. Intente crear el directorio C:/Scripts y almacenarlo allí. Además, cree una carpeta en Scripts llamada Logs. Tenga en cuenta que la ruta al script es C:/Scripts/log-CPULoadPercentage.ps1 . Lo necesitarás más tarde.

Nota: Todas las líneas a continuación seguidas del símbolo # son comentarios y no afectarán el script.

 CLS #Opcional. Me gusta usar esto para borrar el terminal cuando se prueba.#Asegúrese de tener una carpeta llamada Registros en el mismo directorio que este script#El registro es donde se almacenarán los registros. log-CPULoadPercentage-$(get-date -f aaaa-MM-dd).txt" -Append#While loop lo mantiene en ejecución hasta que se detiene manualmenteWhile ($True){ #Crea una marca de tiempo para saber cuándo se tomó la medida $timeStamp = get-date -f yyyy-MM-h:mm:ss #Obtiene el porcentaje de carga promedio en ese momento, luego espera 5 segundos para hacerlo nuevamente. $cpuLoadPercent = Get-CimInstance win32_processor | Medida-Objeto -Propiedad Porcentaje de carga -Promedio | Select-Object Average;Start-Sleep -Seconds 5 #Aísla solo el promedio para que no haya una cadena extraña @{Average=13} $cpuLoadPercent = $cpuLoadPercent.Average #escribe los resultados en la pantalla, o en este caso en el registro Write-Host "$timeStamp CPU Load Porcentage $cpuLoadPercent"}Stop-Transcript
  • Esto se puede hacer en el símbolo del sistema de Windows o en PowerShell. Ábrelo como administrador.
  • Ingrese el comando nssm install logCPUAvg y ejecútelo. Se abrirá la ventana del instalador del servicio NSSM.
¿Cómo crear un servicio de Windows? - 9 - noviembre 9, 2022
  • Haga clic en el botón de puntos suspensivos junto al campo ruta, navegue hasta powershell.exe que normalmente se encuentra en C:WindowsSystem32. Seleccione powershell.exe. Los campos ruta y directorio de inicio se completarán automáticamente.
¿Cómo crear un servicio de Windows? - 11 - noviembre 9, 2022
  • Ingrese lo siguiente en el campo argumentos: -ExecutionPolicy Bypass -NoProfile -File C:PathToScriptget-Script.ps1, donde la última parte es la ruta a su secuencia de comandos de PowerShell y el nombre de la secuencia de comandos.
¿Cómo crear un servicio de Windows? - 13 - noviembre 9, 2022
  • Seleccione la pestaña detalles. Ingrese cómo desea que se muestre el servicio en el administrador de servicios de Windows en el campo nombre para mostrar. Luego, ingrese lo que hace en el campo descripción. El tipo de inicio: se puede configurar como automático, automático (Inicio retrasado), manual o Deshabilitado. Para este ejercicio, automático es bueno.
¿Cómo crear un servicio de Windows? - 15 - noviembre 9, 2022
  • Seleccione la pestaña Iniciar sesión. Seleccione Esta cuenta: botón de radio e ingrese la cuenta y la contraseña con la que se ejecutará el servicio. Deberá elegir una cuenta bajo la cual se ejecutará el servicio. Idealmente, tendrá una cuenta de Windows creada solo para ejecutar este servicio. Los permisos de esta cuenta deben limitarse solo a lo que el servicio necesita hacer. Puede elegir la cuenta del sistema local, pero no se recomienda por razones de seguridad.
¿Cómo crear un servicio de Windows? - 17 - noviembre 9, 2022

Hay varias otras pestañas que se pueden usar para personalizar el servicio. Para este ejercicio, los valores predeterminados en esas pestañas son suficientes. Seleccione el botón instalar servicio.

  • Cuando el servicio esté instalado, verá que el servicio logCPUAvg se instaló correctamente. ventana. Seleccione Aceptar para cerrarlo. Eso concluye la instalación.
¿Cómo crear un servicio de Windows? - 19 - noviembre 9, 2022
  • Abra el administrador de servicios de Windows y asegúrese de que el servicio esté allí.
¿Cómo crear un servicio de Windows? - 21 - noviembre 9, 2022
  • Ejecute el servicio para asegurarse de que se ejecutará.
¿Cómo crear un servicio de Windows? - 23 - noviembre 9, 2022
  • Para verificar que este servicio se está ejecutando, use el explorador de archivos para navegar hasta donde se supone que debe guardarse el registro para ver si existe.
¿Cómo crear un servicio de Windows? - 25 - noviembre 9, 2022
  • Nssm-check-log.png

Eliminación de un servicio de Windows con NSSM

Tal vez ya no necesite monitorear la carga de su CPU, por lo que le gustaría deshacerse del servicio. Afortunadamente, NSSM lo hace fácil.

  • En el administrador de servicios de Windows, detenga el servicio. Haga esto seleccionando el servicio Log CPU Average Load y luego seleccionando el botón cuadrado de parada en la barra de herramientas o el enlace detener el servicio en el lado izquierdo.
¿Cómo crear un servicio de Windows? - 27 - noviembre 9, 2022
  • Abra el símbolo del sistema de Windows o PowerShell como administrador.
  • Ingrese el comando nssm remove logCPUAvg y ejecute el comando.
¿Cómo crear un servicio de Windows? - 29 - noviembre 9, 2022
  • NSSM le pedirá que confirme. Seleccione Sí.
¿Cómo crear un servicio de Windows? - 31 - noviembre 9, 2022
  • Cuando se elimine el servicio, verá que el servicio logCPUAvg se eliminó correctamente. Confirmación. Seleccione aceptar y listo.
¿Cómo crear un servicio de Windows? - 33 - noviembre 9, 2022

Eso es todo. Es una buena idea verificar el administrador de servicios para asegurarse de que el servicio ya no esté allí. Si aún ve el servicio, es posible que deba actualizar la pantalla y debería desaparecer.

Los servicios son una excelente manera de ejecutar aplicaciones o scripts que deben ejecutarse todo el tiempo, reiniciarse si fallan o necesitan privilegios diferentes a los del usuario actual. Si no necesita su aplicación o secuencia de comandos para hacer todas esas cosas, considere usar una tarea programada en su lugar.