Come elencare tutti i servizi Windows utilizzando PowerShell o riga di comando

Le applicazioni in esecuzione che vedi sullo schermo sono una frazione di ciò che sta accadendo in Windows . Dalla gestione dei driver di dispositivo alla sicurezza, una serie di processi in background mantiene un PC Windows funzionante.(Windows)

Per qualsiasi amministratore di sistema che supervisiona più computer, è importante poter visualizzare lo stato di questi servizi critici. L' approccio di Task Manager è troppo lento per questo e non puoi automatizzarlo con uno script.

La soluzione? Strumenti da riga di comando. Utilizzando il prompt dei comandi o PowerShell(Command Prompt or PowerShell) , puoi ottenere rapidamente una lettura dei servizi operativi Microsoft in esecuzione su un sistema, aiutandoti a diagnosticare rapidamente eventuali problemi. 

Elenco dei servizi di (Services)Windows nel prompt dei comandi(Command Prompt)

Sebbene non sia flessibile o potente come Windows PowerShell , il prompt dei comandi(the Command Prompt) è comunque uno strumento eccellente per gli amministratori di sistema. È possibile utilizzare il comando queryex per ottenere lo stato dei servizi attivi e disabilitati e quindi utilizzare il comando taskkill(use the taskkill command) per terminare processi fastidiosi.

  1. Per utilizzare il comando queryex, eseguire il prompt dei comandi(Command Prompt) come amministratore(Administrator) . Puoi trovare l'app cercando cmd nel menu di avvio.

  1. Esistono molti modi per utilizzare il comando sc queryex. Tipo e Stato(State) sono i due parametri più comunemente usati. Ad esempio, immetti il ​​seguente comando per visualizzare tutti  i processi di Windows :

sc queryex type=service state=all

  1. La visualizzazione predefinita può essere un po' opprimente. È possibile visualizzare solo i nomi dei processi per semplificare l'analisi dell'elenco:

sc queryex type=service state=all | find /i “SERVICE_NAME:”

  1. Per impostazione predefinita, il comando elenca tutti i processi attivi. Per cercare quelli inattivi, modificare il parametro state:

sc queryex type=service state=inactive

  1. Puoi anche interrogare lo stato di un processo specifico in base al suo nome. Questo è incredibilmente utile per gli amministratori di sistema, in quanto possono impostare file batch per controllare molti processi contemporaneamente. Ecco un esempio:

sc interroga DeviceInstall(sc query DeviceInstall)

Elenco dei servizi (Services)Windows in PowerShell

PowerShell è pensato per essere una shell della riga di comando dedicata per Windows moderno . In quanto tale, fornisce l'accesso a quasi tutti i componenti del sistema operativo tramite comandi e i servizi di Windows non fanno eccezione.

Il vantaggio di PowerShell(PowerShell) è che puoi automatizzarlo facilmente. Tutti i comandi di PowerShell possono essere compilati in script complessi, consentendo di impostare attività di amministrazione del sistema su più PC senza problemi.

  1. Inizia(Start) aprendo PowerShell . Puoi cercarlo nel menu Start(Start Menu) ; assicurati di eseguire un'istanza con privilegi elevati (ad esempio, come amministratore(Administrator) ).

  1. Il comando più semplice per elencare i servizi di Windows su PowerShell è Get-Service . Mostra tutti i servizi sul tuo computer, insieme al loro stato e nomi. L'unico problema è che l'elenco dei servizi può essere piuttosto lungo.

  1. Quando si utilizza Get-Service , è consigliabile esportare l'elenco in un file di testo. Puoi farlo usando i tubi, in questo modo:

Get-Service | Out-File “C:\logs\All_Services.txt”

  1. Per cercare lo stato di un servizio specifico, segui il comando Get-Service con il nome del servizio. Puoi richiedere lo stato di più processi separando i loro nomi con virgole.

Get-Service CryptSvc, COMSysApp

  1. Le pipe possono essere utilizzate anche per combinare il cmdlet Get-Service con la funzione (Get-Service)Where-Object e filtrare i risultati in base a Status . Il comando seguente lo illustra ottenendo tutti i servizi in esecuzione(Running) :

Get-Service | Where-Object {$_.Status -EQ “Running”}

Verifica delle dipendenze dai servizi

Qualsiasi processo complesso è suddiviso in più servizi interdipendenti. Questo è il motivo per cui ottenere semplicemente lo stato di un determinato servizio spesso non è sufficiente. È inoltre necessario verificare lo stato dei servizi da cui dipende il servizio.

  1. Per visualizzare i servizi richiesti da un determinato servizio, utilizzare il flag -RequiredServices con il cmdlet Get-Service . Ecco un esempio:

Get-Service -Name CryptSvc –RequiredServices

  1. Allo stesso modo, per ottenere un elenco di servizi che dipendono da un servizio specifico, sfruttare il flag -DependentServices .

Get-Service -Name CryptSvc -DependentServices

Questi due flag sono fondamentali nella scrittura di script per avviare o arrestare automaticamente i servizi di Windows , in quanto consentono di tenere traccia di tutti i servizi connessi al servizio interessato.

Elenco dei servizi (Services)Windows su computer remoti(Remote)

Il metodo PowerShell non è limitato ai computer locali. È possibile utilizzare il cmdlet Get-Service con la stessa sintassi descritta in precedenza per eseguire query anche sui processi di PC remoti. Basta(Just) aggiungere il flag -ComputerName alla fine per specificare da quale computer remoto recuperare le informazioni. 

Ecco un esempio:

get-service CryptSvc -ComputerName Workstation7

Gestione dei servizi (Services)Windows in PowerShell

Ottenere lo stato dei servizi non è l'unica cosa che puoi fare in Windows PowerShell . In quanto ambiente di scripting completo, fornisce alternative di script a tutte le opzioni della GUI

I cmdlet di Powershell(Powershell) possono arrestare, avviare, riavviare o persino modificare i servizi. Associati ai comandi automatici Get-Service , gli script di (Get-Service)PowerShell possono essere scritti per automatizzare completamente le attività quotidiane di gestione del sistema.

  1. Oltre a interrogare lo stato dei servizi, puoi anche utilizzare PowerShell per gestirli. L'avvio o l'arresto dei servizi può essere eseguito con un unico comando, richiedendo solo il nome del servizio. Ad esempio, ecco come interrompere un servizio:

Stop-Service -Spooler del nome(Stop-Service -Name Spooler)

  1. L'avvio di un servizio è simile:

Start-Service - Nome Spooler(Start-Service -Name Spooler)

  1. Se un servizio non funziona correttamente, puoi anche scegliere di riavviarlo:

Servizio di riavvio - Nome spooler(Restart-Service -Name Spooler)

  1. È inoltre disponibile il cmdlet Set-Service che può essere utilizzato per modificare le proprietà di un servizio. (Set-Service)Qui disabilitiamo l'avvio automatico del servizio Spooler di stampa(Print Spooler) :

Set-Service 'Spooler' -StartupType Disabilitato(Set-Service ‘Spooler’ -StartupType Disabled)

Qual è il modo migliore per elencare i servizi di (Services)Windows(List Windows) ?

Sia che tu stia utilizzando Windows 10 o un Windows Server , essere in grado di visualizzare un elenco di tutti i servizi Windows può essere utile. È possibile diagnosticare problemi con funzioni di sistema critiche o interrompere servizi Microsoft non necessari per migliorare le prestazioni.

A questo scopo, PowerShell è l'opzione migliore. Sebbene sia possibile ottenere un elenco di servizi nel prompt dei comandi(Command Prompt) , la funzionalità aggiuntiva fornita da PowerShell è più utile.

È possibile utilizzare i cmdlet di PowerShell per ottenere lo stato del servizio dei processi di (PowerShell)Windows , filtrandoli in base al relativo stato o ad altri parametri. È anche facile determinare i servizi dipendenti e avviarli o interromperli secondo necessità.



About the author

Sono un MVP di Windows e lavoro con Windows dal 2007. La mia esperienza include sviluppo software, hardware e suoni e app di Windows. Sono sempre alla ricerca dei modi migliori per migliorare l'esperienza dell'utente nel mio lavoro, quindi se hai bisogno di aiuto per progettare o sviluppare un'applicazione software, posso sicuramente offrire i miei servizi.



Related posts