Come molti probabilmente già sapranno, nei sistemi operativi Windows, un servizio Windows (Windows Service) è un programma per computer che funziona in background, in modo molto simile ai daemon in ambiente Unix/Linux. I Servizi di Windows possono essere configurati per essere lanciati automaticamente all'avvio all'avvio del sistema operativo oppure manualmente per mezzo dello strumento Service Manager, accessibile digitando services.msc dal prompt dei comandi oppure aprendo il menu di avvio, digitando "services" dal menu Start e quindi lanciando l'icona dello strumento Service Manager che sarà visualizzata immediatamente.
In questo post vedremo come è possibile utilizzare alcuni comandi console, accessibili dal command prompt (CMD) oppure tramite PowerShell, per effettuare alcune operazioni utili sui servizi, come ad esempio: elencare tutti i servizi installati, elencare i servizi attivi o inattivi, cercare un servizio specifico, etc.; i comandi illustrati funzionano su tutte le principali edizioni di Windows, inclusi Windows 10 e tutte le ultime versioni di Windows Server.
Command-Line (CMD)
Elencare tutti i servizi di Windows presenti (installati) sul sistema:
1 |
sc queryex type=service state=all |
Elencare i nomi di tutti i servizi di Windows presenti (installati) sul sistema:
1 |
sc queryex type=service state=all | find /i "SERVICE_NAME:" |
Elencare i soli servizi attivi di Windows, con l'esclusione di quelli non attivi:
1 |
sc queryex type=service state=active |
Elencare i soli servizi inattivi di Windows, con l'esclusione di quelli attivi:
1 |
sc queryex type=service state=inactive |
Cercare uno (o più) servizi di Windows utilizzando un filtro per nome:
1 |
sc queryex type=service state=all | find /i "SERVICE_NAME: MyServiceName" |
Visualizzare lo status (attivo o inattivo) di un servizio specifico, individuato per nome:
1 |
sc query MyServiceName |
PowerShell commands
Elencare tutti i servizi di Windows presenti (installati) sul sistema:
1 |
Get-Service |
Elencare i nomi di tutti i servizi di Windows presenti (installati) sul sistema:
1 |
sc queryex type=service state=all | find /i "SERVICE_NAME:" |
Elencare i soli servizi attivi di Windows, con l'esclusione di quelli non attivi:
1 |
Get-Service | Where-Object {$_.Status -eq "Running"} |
Elencare i soli servizi inattivi di Windows, con l'esclusione di quelli attivi:
1 |
Get-Service | Where-Object {$_.Status -eq "Stopped"} |
Cercare uno (o più) servizi di Windows utilizzando un filtro per nome:
1 |
Get-Service | Where-Object {$_.Name -like "*MyServiceName*"} |
Visualizzare lo status (attivo o inattivo) di un servizio specifico, individuato per nome:
1 |
Get-Service MyServiceName* |
Conclusioni
Per il momento è tutto: ci auguriamo che questo articolo possa essere utile agli amministratori di sistema che cercano un modo semplice e veloce per elencare, filtrare e cercare le informazioni relative ai servizi installati sulle proprie macchine Windows o Windows Server tramite prompt dei comandi (CMD) o PowerShell.