Come gestire i servizi Windows utilizzando PowerShell



Accedere ai servizi Windows con PowerShell è piuttosto comodo, soprattutto se si sta armeggiando con i comportamenti di avvio o si desidera semplicemente scrivere qualche modifica. Non so perché, ma il gestore grafico dei servizi (services.msc) a volte può essere un problema, o semplicemente troppo lento. Utilizzando i comandi di PowerShell, è possibile ignorare l’interfaccia utente e gestire tutto direttamente dal terminale, il che è una vera salvezza per l’automazione o la risoluzione dei problemi. Un piccolo avvertimento: se si sta cercando di impostare “Automatico (avvio ritardato)”, si tratta comunque di una funzionalità GUI registrata; PowerShell gestisce solo gli stati “Automatico” o “Manuale”.

Come gestire i servizi Windows con PowerShell

Disabilitazione o abilitazione di un servizio

Se un servizio continua ad avviarsi automaticamente e si desidera interromperlo, il modo più semplice è impostarne il tipo di avvio su “Disabilitato” prima di riavviarlo. Funziona sulla maggior parte delle versioni di Windows, incluse Windows 10 e le edizioni server. Ricorda, PowerShell non visualizza un messaggio di conferma dopo aver modificato il tipo di avvio, quindi è necessario verificarne lo stato manualmente.

Get-Service -Name "spooler" | Select-Object -Property Name, StartType Set-Service -Name "spooler" -StartupType Disabled Get-Service -Name "spooler" | Select-Object -Property Name, StartType 

Questo frammento di codice verifica prima il tipo di avvio del servizio, poi lo imposta su “Disabilitato”, quindi verifica di nuovo. Onestamente, è un po’ strano: non si riceve una conferma di successo, ma se StartType risulta “Disabilitato”, significa che ha funzionato. Su alcuni computer, potrebbe essere necessario un riavvio per impedire completamente l’avvio automatico del servizio dopo aver modificato tale impostazione.

Arresto manuale del servizio

Se si desidera interrompere immediatamente il servizio (ad esempio, prima di spegnerlo), è possibile eseguire:

Stop-Service -Name "spooler"

Questa operazione interrompe immediatamente il servizio, ma tieni presente che se il servizio è impostato per riavviarsi automaticamente al riavvio, potrebbe essere necessario disabilitarlo come mostrato sopra o modificarne il tipo di avvio.

Impostazione del servizio su Manuale o Automatico

Questa opzione è utile se si desidera che un servizio venga eseguito solo quando necessario. Ad esempio, per impostarlo su manuale, eseguire:

Set-Service -Name "spooler" -StartupType Manual

E se vuoi che si avvii automaticamente con Windows, esegui:

Set-Service -Name "spooler" -StartupType Automatic

Nota: non è possibile impostare “Automatico (avvio ritardato)” tramite PowerShell: è ancora una questione di interfaccia grafica. Bisognerebbe accedere all’interfaccia grafica o modificare le impostazioni del registro, ma questo è un altro grattacapo.

Riavvio del servizio

Se hai disabilitato o arrestato un servizio e vuoi riavviarlo manualmente, esegui semplicemente:

Start-Service -Name "spooler"

Questo avvia il sistema senza dover riavviare. Se stai scrivendo degli script, questi comandi sono un modo rapido per attivare/disattivare i servizi senza dover armeggiare con l’interfaccia grafica.

Tutti questi comandi rendono la gestione dei servizi Windows più veloce e flessibile, soprattutto se si automatizzano alcune operazioni o si vuole evitare il problema dell’interfaccia utente grafica. Ricordate però che a volte Windows continua ostinatamente ad avviare automaticamente il servizio, quindi potrebbe essere necessario riavviare il sistema o controllare le impostazioni dei Criteri di gruppo se le cose si fanno davvero strane.



Questo articolo è stato utile?