Como criar um serviço do Windows


Às vezes, você precisa de um aplicativo ou script para continuar em execução, esteja você conectado ao computador ou não. Talvez seja um Script PowerShell para monitorar portas ou um servidor da web hospedando uma página em sua rede doméstica.

A questão é que se você deseja que um processo, script ou programa seja executado enquanto o computador estiver ligado, você precisará criar um Serviço Windows.

O que eu preciso para criar um serviço do Windows?

Para criar um serviço do Windows no Windows 10, existem alguns pré-requisitos:

  • Acesso de administrador no computador
  • algo para ser executado como um serviço (PowerShell Script, programa, etc.)
  • Non-Sucking Service Manager (NSSM) instalado
  • O que é o gerenciador de serviços não sugador?

    Sim, você não pode citar um nome como esse sem explicá-lo. Claro que o nome é lamentável, mas é preciso. O Non-Sucking Service Manager (NSSM) é sem dúvida a maneira mais fácil de criar um serviço do Windows que seja altamente confiável e configurável. Além disso, é gratuito e Software livre (OSS).

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

    Você pode baixe o NSSM do site, clone NSSM do Git ou instalar NSSM com Chocolatey. Chocolatey é um gerenciador de pacotes para Windows. Os métodos de instalação variam dependendo da rota que você segue. Consulte as instruções do NSSM. Para nosso exemplo, estamos baixando do site do NSSM e instalando-o em C: \ WINDOWS \ system32.

    In_content_1 all: [300x250] / dfp: [640x360]->

    Criar um serviço do Windows com NSSM

    Para este exemplo, criaremos um serviço de Script PowerShell para registrar Porcentagem de carga média da CPU.

    1. Copie e salve este script como log-CPULoadPercentage.ps1em um lugar que provavelmente não será acessado por ninguém. Tente criar o diretório C: / Scriptse armazená-lo lá. Além disso, crie uma pasta em Scripts chamada Logs. Observe que o caminho para o script é C: /Scripts/log-CPULoadPercentage.ps1. Você precisará disso mais tarde.
    2. Nota: Todas as linhas abaixo seguidas pelo símbolo # são comentários e não afetarão o script.

      CLS #Optional. I like to use this to clear the terminal when testing.
      #Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
      1. Isso pode ser feito no Prompt de Comando do Windowsou no PowerShell.Abra-o como Administrador.
      2. Digite o comando nssm install logCPUAvge execute-o. A janela do instalador do serviço NSSMserá aberta.
        1. Clique no botão de reticências ao lado do campo Caminho:e navegue até powershell.exeque normalmente está localizado em C: \ Windows \ System32 \. Selecione powershell.exe. Os campos Caminho:e Diretório de inicialização:serão preenchidos automaticamente.
          1. Digite o seguinte no campo Argumentos:: -ExecutionPolicy Bypass -NoProfile -File “C: \ PathToScript \ get-Script.ps1”, onde a última parte é o caminho ao seu script do PowerShell e ao nome do script.
            1. Selecione a guia Detalhes. Digite o que deseja que o serviço apareça no gerenciador de serviços do Windows no campo Nome de exibição:. Em seguida, insira o que faz no campo Descrição:. O tipo de inicialização:pode ser definido como automático, automático (início atrasado), manualou Desativado. Para este exercício, Automático é bom.
              1. Selecione a guia Logon. Selecione Esta conta: botão de opção e insira a conta e a senha com as quais o serviço será executado. Você precisará escolher uma conta na qual o serviço será executado. O ideal é que você tenha 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 a conta do sistema local, mas não é recomendada por motivos de segurança.
              2. 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 o botão Instalar serviço.

                1. Quando o serviço for instalado, você verá o Serviço “logCPUAvg” instalado com sucesso!janela. Selecione OKpara fechá-lo. Isso conclui a instalação.
                  1. Abra o Gerenciador de Serviços do Windowse verifique se o serviço está lá.
                    1. Execute o serviço para garantir que será executado.
                      1. Para verificar se este serviço está em execução, use o Explorador de Arquivospara navegar até onde o log deve ser salvo para ver se existe.
                      2. Remoção de um serviço do Windows Com NSSM

                        Talvez você não precise mais monitore sua CPU carregar, então você gostaria de se livrar do serviço. Felizmente, o NSSM torna isso fácil.

                        1. No Gerenciador de serviços do Windows, pare o serviço. Faça isso selecionando o serviço Registrar carga média da CPUe, em seguida, selecionando o botão quadrado de parada na barra de ferramentas ou o link Parar o serviçono lado esquerdo.
                          1. Abra o Prompt de Comando do Windowsou o PowerShellcomo Administrador.
                          2. Digite o comando nssm remove logCPUAvge execute o comando.
                            1. NSSM solicitará sua confirmação. Selecione Sim
                              1. Quando o serviço for removido, você verá o Serviço “logCPUAvg ”Removido com sucesso!Confirmação. Selecione OKe pronto.
                              2. 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 ser necessário atualizar a tela e ele deve ter sumido.

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

                                Postagens relacionadas:


                                12.11.2020