Como criar um serviço Windows

Como criar um serviço Windows

Às vezes você precisa de um aplicativo ou script para continuar correndo, se você está conectado ao seu computador ou não. Talvez seja um script do PowerShell para monitorar portas ou um servidor da web que hospeda uma página em sua rede doméstica.

O ponto é que, se você deseja um processo, script ou programa para executar o tempo que estiver o computador, precisará criar um serviço do Windows.

Índice

    O NSSM pode ser usado através do prompt de comando do Windows ou uma interface gráfica do usuário (GUI). Isso significa que qualquer um pode usá -lo. O NSSM pode ser usado em qualquer versão do Windows que remonta e incluindo o Windows 2000. Existem versões de 32 e 64 bits. Se você estiver usando um computador de 64 bits, tente essa versão primeiro. Se não funcionar, volte à versão de 32 bits.

    Você pode baixar o NSSM no site, clone nssm do git ou instalar nssm com chocolate. Chocolatey é um gerente de pacotes para janelas. Os métodos de instalação variarão dependendo da rota que você segue. Consulte as instruções do NSSM. Para o nosso exemplo, estamos baixando no site do NSSM e instalando -o em C: \ Windows \ System32.

    Crie um serviço Windows com NSSM

    Para este exemplo, criaremos um serviço a partir de um script do PowerShell para registrar a porcentagem de carga média da CPU.

    1. Copie e salve este script como log-cpuloadPercentage.ps1 para um lugar que provavelmente não será acessado por mais ninguém. Tente criar o diretório C:/scripts e armazenando lá. Além disso, crie uma pasta em scripts chamados Histórico. Observe que o caminho para o script é C:/scripts/log-cpuloadPercentage.ps1. Você precisará disso mais tarde.

    Observação: Todas as linhas abaixo seguidas pelo símbolo # são comentários e não afetam o script.

    CLS #Optional. Eu gosto de usar isso para limpar o terminal ao testar. #Make Certtey você tem uma pasta chamada logs no mesmo diretório que este script #O log é onde os registros serão armazenados. Start-transcript -Path "$ PSScriptroot \ logs \ log-cpuloadPercentage-$ (get-date -f yyyy-mm-dd).txt "-Append #While Loop mantém funcionando até que pare manualmente enquanto ($ true)  #cria um registro de data e hora para saber quando a medição foi realizada $ timestamp = get-date -f yyyy-mm-h: mm: ss #gets o Porcentagem de carga média naquele momento, então espera 5 segundos para fazê -lo novamente. $ cpuloadpercent = get-cimInstance win32_processor | Medida -objeto -Property LoadPercentage -Earrage | Média de seleção de objeto; sono-lar-segundos 5 #isolados apenas a média, então não há um estranho @média = 13 string $ cpuloadpercent = $ cpuloadpercent.#Redigir os resultados da tela, ou neste caso para o host de log de log "$ timestamp cpu carrega porcentagem $ cpuloadpercent" stop-transcript
    1. Isso pode ser feito no Prompt de comando do Windows ou Powershell. Abra como administrador.
    2. Digite o comando NSSM Instale o logcpuavg e executá -lo. O Instalador de serviço NSSM A janela será aberta.
    1. Clique no botão Elipses ao lado do Caminho: campo, navegue para o Powershell.exe que normalmente está localizado em C: \ Windows \ System32 \. Selecione PowerShell.exe. O Caminho: e Diretório de inicialização: Os campos serão preenchidos automaticamente.
    1. Digite o seguinte no Argumentos: campo: -ExecutionPolicy Bypass -NoProfile -File “C: \ PATHTOSSCRIP \ GET -SCRIÇÃO.ps1 ”, Onde a última parte é o caminho para o seu script PowerShell e o nome do script.
    1. Selecione os Detalhes aba. Insira o que você gostaria que o serviço apareça como no Windows Services Manager no Nome de exibição: campo. Então, insira o que faz no Descrição: campo. O Tipo de inicialização: pode ser definido como Automático, Automático (início atrasado), Manual, ou Desabilitado. Para este exercício, automático é bom.
    1. Selecione os Entrar aba. Selecione Esta conta: botão de rádio e insira a conta e a senha que o serviço será executado como. Você precisará escolher uma conta sob a qual o serviço será executado. Idealmente, você terá uma conta do Windows criada apenas para executar este serviço. As permissões desta conta devem ser limitadas apenas ao que o serviço precisa fazer. Você pode escolher o Conta do sistema local, Mas não é recomendado por razões de segurança.

    Existem várias outras guias que podem ser usadas para personalizar o serviço. Para este exercício, os valores padrão nessas guias são suficientes. Selecione os Instale o serviço botão.

    1. Quando o serviço for instalado, você verá o Serviço “Logcpuavg” instalado com sucesso! janela. Selecione OK para fechá -lo. Que conclui a instalação.
    1. Abra o Windows Services Manager e verifique se o serviço está lá.
    1. Execute o serviço para garantir que ele seja executado.
    1. Para verificar se este serviço está em execução, use Explorador de arquivos Para navegar para onde o tronco deve ser salvo para ver se existe.

    nssm-check-log.png

    Removendo um serviço Windows com NSSM

    Talvez você não precise mais monitorar sua carga de CPU, então você gostaria de se livrar do serviço. Felizmente, o NSSM facilita isso.

    1. No Windows Services Manager, Pare o serviço. Faça isso selecionando o Log da carga média da CPU serviço então selecionando o botão de parada quadrada na barra de ferramentas ou no Pare o serviço Link no lado esquerdo.
    1. Abra o Prompt de comando do Windows ou Powershell como administrador.
    2. Digite o comando NSSM remove o logcpuavg e executar o comando.
    1. NSSM pedirá que você confirme. Selecione Sim.
    1. Quando o serviço for removido, você verá o Serviço “Logcpuavg” removido com sucesso! Confirmação. Selecione OK E você terminou.

    Isso é tudo. É uma boa ideia verificar o gerente de serviços para garantir que o serviço não esteja mais lá. Se você ainda vir o serviço, pode precisar atualizar a tela e ele deve desaparecer.

    Os serviços são uma ótima maneira de executar aplicativos ou scripts que precisam correr o tempo todo, reinicie -se se falharem ou precisarem de privilégios diferentes do usuário atual. Se você não precisar do seu aplicativo ou script para fazer todas essas coisas, considere usar uma tarefa programada em vez.