Essendo tuttavia il server in produzione e non recando il processo bloccato nessun disservizio all’utenza, ho ritenuto eccessivo un reboot a metà mattina.
In sostanza, un metodo per forzare l’arresto di un servizio bloccato in “arresto in corso” o “stop pending” è il seguente:
Anzitutto è necessario il PID del processo da killare, lo possiamo trovare agilmente tramite la console “services.msc”, aprendo le proprietà del servizio bloccato, ne ho aperto uno a caso evidenziando il nome processo univocamente assegnato dal sistema:

Aprire quindi un prompt dei comandi (mi raccomando di usare un account con privilegi di amministrazione), e digitare la seguente riga:
sc queryex "[nomeservizio]"
Appariranno tutta una serie di informazioni carine, tra cui STATO (che sarà “ARRESTO IN CORSO” o “STOP PENDING”) e PID.
Ora digitiamo:
taskkill /F /PID [pid_servizio]
E come per magia il servizio si stopperà.
Per esperienza personale ho riavviato il servizio stesso dopo pochi istanti senza rilevare problema alcuno, e risolvendo anzi il problema iniziale.
Nota importante: verificate che tutti i servizi dipendenti dal servizio in questione siano ancora avviati perchè un kill brutale del servizio padre potrebbe portare alla morte dei servizi figli, senza che il sistema avverta in alcun modo l’utente.
Un sentito ringraziamento per la dritta al collega Cillo.
Testato su Windows Server 2003.
Trovato qiu.