Cómo crear un servicio de Windows

Cómo crear un servicio de Windows

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

El punto es que si desea un proceso, script o programa para ejecutarse mientras la computadora esté activada, deberá crear un servicio de Windows.

Tabla de contenido

    NSSM se puede usar 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 que se remonta e incluye Windows 2000. Hay versiones de 32 bits y 64 bits. Si está utilizando una computadora de 64 bits, intente primero esa versión. Si no funciona, vuelva a la versión de 32 bits.

    Puede descargar NSSM desde el sitio web, Clone NSSM de 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, estamos descargando desde el sitio web de NSSM e instalándolo en C: \ Windows \ System32.

    Crea 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.

    1. Copie y guarde este script como log-cpuloadpercentage.PS1 A un lugar al que no es probable que sea accedido por nadie más. Intenta crear el directorio C:/scripts y almacenarlo allí. Además, cree una carpeta en scripts llamado Registro. 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 afectan el script.

    CLS #optional. Me gusta usar esto para borrar el terminal al probar. #Mage, seguro que tiene una carpeta llamada registros en el mismo directorio que este script #the registro es donde se almacenarán los registros. Inicio-transcript -path "$ psscriptroot \ logs \ log-cpuloadpercentage-$ (get-date -f yyyy-mm-dd).txt "-append #while loop lo mantiene en funcionamiento hasta que se detenga manualmente mientras ($ true) #cree una marca de tiempo para saber cuándo se tomó la medición $ timestamp = get-date -f yyyy-mm-h: mm: ss #gets the #gets the Porcentaje de carga promedio en ese momento, luego espera 5 segundos para hacerlo nuevamente. $ CPULOAdPORTER = GET-CIMINSTANCE WIN32_PROCESOR | Medido -Object -Property Loadpercentage -verage | Promedio de select-object; sleep-sleep -seconds 5 #isolate solo el promedio, por lo que no hay un raro @promedio = 13 cadena $ cpuloadpercent = $ cpuloadpercent.Resultados promedio de #Writes para pantalla, o en este caso para el registro de escritura Host "$ TimeStamp CPU Carga porcentaje $ cpuloadpercent" stop-transcript
    1. Esto se puede hacer en el Símbolo del sistema de Windows o Potencia Shell. Abrirlo como administrador.
    2. Ingrese el comando NSSM Instalar logCPuavg y ejecutarlo. El Instalador de servicios NSSM La ventana se abrirá.
    1. Haga clic en el botón Elipses junto al Camino: campo, navegue al potencia Shell.exe que normalmente se encuentra en C: \ Windows \ System32 \. Seleccionar PowerShell.exe. El Camino: y Directorio de inicio: Los campos se poblarán automáticamente.
    1. Ingrese lo siguiente en el Argumentos: campo: -Ejecutpolicy bypass -noprofile -file "c: \ pathtoscript \ get -script.PS1 ", donde la última parte es el camino a su script de PowerShell y el nombre del script.
    1. Selecciona el Detalles pestaña. Ingrese lo que desea que aparezca el servicio como en el Administrador de servicios de Windows en el Nombre para mostrar: campo. Entonces, ingrese lo que hace en el Descripción: campo. El Tipo de inicio: se puede configurar como Automático, Automático (arranque retrasado), Manual, o Desactivado. Para este ejercicio, el automático es bueno.
    1. Selecciona el Acceder pestaña. Seleccionar Esta cuenta: botón de radio e ingrese la cuenta y la contraseña que el servicio se ejecutará como. Deberá elegir una cuenta en la que 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. Puedes elegir el Cuenta del sistema local, Pero no se recomienda por razones de seguridad.

    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. Selecciona el Servicio de instalación botón.

    1. Cuando el servicio esté instalado, verá el Servicio "LogcPuavg" instalado correctamente! ventana. Seleccionar DE ACUERDO Para cerrarlo. Que concluye la instalación.
    1. Abre el Windows Services Manager y asegúrese de que el servicio esté ahí.
    1. Ejecute el servicio para asegurarse de que se ejecute.
    1. Para verificar que este servicio se esté ejecutando, use Explorador de archivos navegar a donde se supone que se guarda el registro para ver si existe.

    NSSM-Check-log.png

    Eliminar un servicio de Windows con NSSM

    Tal vez ya no necesite monitorear su carga de CPU, por lo que desea deshacerse del servicio. Afortunadamente, NSSM lo facilita.

    1. En el Windows Services Manager, detener el servicio. Haz esto seleccionando el Carga promedio de la CPU de registro Servicio, ya sea seleccionando el botón de parada cuadrada en la barra de herramientas o en la Detener el servicio Enlace en el lado izquierdo.
    1. Abra o el Símbolo del sistema de Windows o Potencia Shell como administrador.
    2. Ingrese el comando NSSM Eliminar logCPuavg y ejecutar el comando.
    1. NSSM le pedirá que confirme. Seleccionar .
    1. Cuando se retire el servicio, verá el Servicio "LogcPuavg" eliminado correctamente! Confirmación. Seleccionar DE ACUERDO y tu estas listo.

    Eso es todo. Es una buena idea consultar al gerente 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 necesitan ejecutarse todo el tiempo, reiniciarse si fallan o necesitan privilegios diferentes del usuario actual. Si no necesita su aplicación o script para hacer todas esas cosas, considere usar una tarea programada en su lugar.