Come creare un servizio Windows


A volte hai bisogno di un'app o di uno script per continuare a funzionare indipendentemente dal fatto che tu abbia effettuato l'accesso al computer o meno. Forse è uno Script di PowerShell per monitorare le porte o un server web che ospita una pagina sulla rete domestica.

Il punto è che se vuoi che un processo, uno script o un programma venga eseguito finché il computer è acceso, dovrai creare un Servizio Windows.

Di cosa ho bisogno per creare un servizio Windows?

Per creare un servizio Windows in Windows 10, ci sono alcuni prerequisiti:

  • Accesso amministratore sul computer
  • Qualcosa da eseguire come servizio (script PowerShell, programma, ecc.)
  • Non-Sucking Service Manager (NSSM) installato
  • Che cos'è Gestione servizi non aspiranti?

    Sì, non puoi scrivere un nome del genere senza spiegarlo. Certo il nome è sfortunato, ma è accurato. Il Non-Sucking Service Manager (NSSM) è probabilmente il modo più semplice per creare un servizio Windows che sia altamente affidabile e configurabile. Inoltre, è gratuito e Software open source (OSS).

    NSSM può essere utilizzato tramite Prompt dei comandi di Windows o un'interfaccia utente grafica (GUI ). Ciò significa che chiunque può usarlo. NSSM può essere utilizzato su qualsiasi versione di Windows che risale a, incluso, Windows 2000. Ci sono versioni 32 bit e 64 bit. Se utilizzi un computer a 64 bit, prova prima quella versione. Se non funziona, torna alla versione a 32 bit.

    Puoi scarica NSSM dal sito web, clonare NSSM da Git o installa NSSM con Chocolatey. Chocolatey è un gestore di pacchetti per Windows. I metodi di installazione variano a seconda del percorso che prendi. Si prega di consultare le istruzioni di NSSM. Per il nostro esempio, lo scarichiamo dal sito web di NSSM e lo installiamo in C: \ WINDOWS \ system32.

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

    Crea un servizio Windows con NSSM

    Per questo esempio, creeremo un servizio da Script di PowerShell per accedere Percentuale di carico medio della CPU.

    1. Copia e salva questo script come log-CPULoadPercentage.ps1in un luogo che probabilmente non sarà accessibile a nessun altro. Prova a creare la directory C: / Scriptse a memorizzarla lì. Inoltre, crea una cartella negli script chiamata Logs. Tieni presente che il percorso dello script è C: /Scripts/log-CPULoadPercentage.ps1. Ne avrai bisogno in seguito.
    2. Nota: tutte le righe seguenti seguite dal simbolo # sono commenti e non influenzeranno lo 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. Questa operazione può essere eseguita nel prompt dei comandi di Windowso in PowerShell.Aprilo come amministratore.
      2. Immettere il comando nssm install logCPUAvged eseguirlo. Si aprirà la finestra del programma di installazione del servizio NSSM.
        1. Fai clic sul pulsante con i puntini di sospensione accanto al campo Percorso:, vai a powershell.exeche normalmente si trova in C: \ Windows \ System32 \. Seleziona powershell.exe. I campi Percorso:e Directory di avvio:verranno compilati automaticamente.
          1. Inserisci quanto segue nel campo Arguments:: -ExecutionPolicy Bypass -NoProfile -File "C: \ PathToScript \ get-Script.ps1", dove l'ultima parte è il percorso allo script di PowerShell e al nome dello script.
            1. Seleziona la scheda Dettagli. Inserisci ciò che desideri venga visualizzato dal servizio nel gestore dei servizi Windows nel campo Nome visualizzato:. Quindi, inserisci ciò che fa nel campo Descrizione:. Il Tipo di avvio:può essere impostato come Automatico, Automatico (avvio ritardato), Manualeo Disabilitato. Per questo esercizio, Automatico va bene.
              1. Seleziona la scheda Accesso. Seleziona Questo account: pulsante di opzione e inserisci l'account e la password con cui verrà eseguito il servizio. Dovrai scegliere un account con cui verrà eseguito il servizio. Idealmente, avrai un account Windows creato solo per eseguire questo servizio. Le autorizzazioni di questo account dovrebbero essere limitate solo a ciò che il servizio deve fare. Puoi scegliere l 'account di sistema locale, ma non è consigliato per motivi di sicurezza.
              2. Ci sono molte altre schede che possono essere utilizzate per personalizzare il servizio. Per questo esercizio, i valori predefiniti in queste schede sono sufficienti. Seleziona il pulsante Installa servizio.

                1. Quando il servizio è installato, vedrai il Servizio "logCPUAvg" installato correttamente!finestra. Seleziona OKper chiuderlo. Questo conclude l'installazione.
                  1. Apri Gestione servizi Windowse assicurati che il servizio sia presente.
                    1. Esegui il servizio per assicurarti che venga eseguito.
                      1. Per verificare che questo servizio sia in esecuzione, utilizza Esplora fileper accedere alla posizione in cui dovrebbe essere salvato il registro per vedere se esiste.
                      2. Rimozione di un servizio Windows Con NSSM

                        Forse non è più necessario caricare monitora la tua CPU, quindi ti piacerebbe sbarazzarti del servizio. Fortunatamente, NSSM lo rende facile.

                        1. In Gestione servizi Windows, interrompi il servizio. A tale scopo, seleziona il servizio Registra carico medio CPU, quindi il pulsante quadrato di interruzione nella barra degli strumenti o il link Arresta il serviziosul lato sinistro.
                          1. Apri il prompt dei comandi di Windowso PowerShellcome amministratore.
                          2. Immettere il comando nssm remove logCPUAvged eseguire il comando.
                            1. NSSM ti chiederà di confermare. Seleziona Sì”.
                              1. Quando il servizio viene rimosso, vedrai il Servizio "logCPUAvg "Rimosso con successo!Conferma. Seleziona OKe il gioco è fatto.
                              2. Questo è tutto. È una buona idea controllare il gestore dei servizi per assicurarsi che il servizio non sia più disponibile. Se vedi ancora il servizio, potrebbe essere necessario aggiornare lo schermo e dovrebbe essere sparito.

                                I servizi sono un ottimo modo per eseguire app o script che devono essere sempre eseguiti, riavviarsi se falliscono o necessitano di privilegi diversi dall'utente corrente. Se non hai bisogno della tua app o script per fare tutte queste cose, considera invece utilizzando un'attività pianificata.

                                Post correlati:


                                12.11.2020