Come gestire i servizi di Windows con PowerShell?

È possibile gestire i servizi di Windows non solo dallo snap-in services.msc o dallo strumento a riga di comando sc.exe, ma anche usando PowerShell. In questo articolo considereremo diversi scenari di gestione dei servizi di Windows con PowerShell.

PowerShell Cmdlets usati per gestire i servizi di Windows

Ci sono otto cmdlets di base per visualizzare lo stato dei servizi di Windows e gestirli. Per ottenere l’elenco completo delle cmdlets di gestione dei servizi, esegui questo comando:

Get-Help \*-Service

  • Get-Service – permette di ottenere i servizi su un computer locale o remoto sia in esecuzione che fermati;
  • New-Service – crea un servizio. Il cmdlet crea una nuova voce per un servizio Windows nel registro e nel database dei servizi;
  • Restart-Service – riavvia un servizio. Il cmdlet invia il messaggio di riavvio attraverso il Windows Service Controller;
  • Resume-Service – riprende un servizio. Il cmdlet invia un messaggio di ripresa al Windows Service Manager;
  • Set-Service – cambia le impostazioni di un servizio locale o remoto, incluso il suo stato, la descrizione, il nome visualizzato o la modalità di avvio. Puoi anche usare questo cmdlet per avviare, fermare o sospendere un servizio;
  • Start-Service – avvia un servizio;
  • Stop-Service – ferma un servizio (il cmdlet invia un messaggio di arresto a Windows Service Manager);
  • Suspend-Service – sospende un servizio. Un servizio sospeso è ancora in esecuzione, ma non fa nulla finché non viene ripreso usando (per esempio, con il cmdlet Resume-Service).

Puoi ottenere una descrizione dettagliata ed esempi di utilizzo di un particolare cmdlet con Get-Help:

Get-Help Start-Service

Come controllare lo stato dei servizi Windows con Get-Service?

Puoi ottenere l’elenco dei servizi e il loro stato (In esecuzione/Stop) su un computer locale o remoto usando il cmdlet Get-Service. Il parametro -Name permette di selezionare i servizi per nome. Il nome del servizio può essere specificato usando il carattere jolly *.

Se non conosci il nome esatto del servizio, puoi trovarlo tramite il suo nome visualizzato usando il parametro -DisplayName. Puoi usare l’elenco dei valori e i caratteri jolly.

Usa il cmdlet Get-Service con il parametro -ComputerName per ottenere lo stato del servizio su un computer remoto. Puoi interrogare lo stato del servizio su più computer remoti contemporaneamente specificando i loro nomi separati da virgole. Per esempio, il comando mostrato sotto ottiene lo stato del servizio Spooler sui computer remoti ny-prnt1 e ny-prnt2.

Get-Service spooler –ComputerName ny-prnt1,ny-prnt2

Status Name DisplayName------ ---- -----------Running spooler Print SpoolerStopped spooler Print Spooler

Per visualizzare tutte le proprietà di un servizio, usa la cmdlet Select-Object:

Get-Service spooler | Select-Object *

La cmdlet Select-Object permette di ottenere proprietà specifiche di un servizio. Per esempio, si desidera visualizzare il nome, lo stato e le opzioni disponibili del servizio Spooler:

Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*

Il cmdlet Get-Service ha due parametri che permettono di visualizzare le dipendenze del servizio:

  • -DependentServices permette di visualizzare i servizi dipendenti dal servizio dato
  • -RequiredServices visualizza i servizi da cui dipende il servizio dato

Il seguente comando visualizza i servizi richiesti per avviare il servizio Spooler:

Get-Service –Name Spooler -RequiredServices

Il seguente comando mostra i servizi che dipendono da Spooler:

Get-Service –Name Spooler -DependentServices

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.