In particolare in ambito aziendale (ma anche a casa), potremmo aver bisogno di attivare, riavviare, disabilitare o arrestare un servizio attivo direttamente dalla riga di comando. Mettiamo che una policy aziendale imponga lo stato di un servizio uguale per tutti gli operatori, se però nel vostro computer vi serve qualcosa di diverso, senza andare a creare una policy speciale solo per voi (cosa non sempre gradita dagli amministratori di rete e da chi gestisce la sicurezza della stessa), potete provare a ricorrere a PsExec e alla riga di comando per modificare il servizio con un paio di clic del mouse.
Attivare il servizio e avviarlo
La modifica dello stato del servizio può essere eseguita anche con un utente standard, però serve che sul computer vi sia configurata un’utenza con permessi amministrativi e conoscere la sua password, oltre al file psexec.exe, scaricabile dall'allegato all’articolo, che consiglierei di copiare nella cartella Windows così da averlo sempre a disposizione senza dover indicare ogni volta il percorso dove lo avete copiato.
I comandi da utilizzare, seguiti dalle giuste opzioni, sono sc config
per modificare il tipo d’avvio di un servizio e net start
per avviare il servizio.
Nell'articolo suppongo che l'utente non sia amministratore locale del computer (in ambito aziendale difficilmente avviene questa cosa), se per caso lo foste potete accorciare il comando, la parte "psexec /accepteula -u administrator -p password" non vi serve più.
Questo è il comando completo con tutte le opzioni:
psexec /accepteula -u administrator -p password sc config "nomeservizio" start= tipo di avvio
Più nello specifico con il comando che vedete qui sotto impostate il Tipo di avvio in automatico per il servizio Windows Defender, crazy.cat è l’utente amministratore locale del computer, TurboLab.it è la sua password, il nome servizio lo trovate nelle proprietà del servizio stesso.
psexec /accepteula -u crazy.cat -p TurboLab.it sc config "WinDefend" start= auto
Utilizzerò lo stesso nome e password nel resto dell’articolo, ovviamente le dovete modificare con quelle che utilizzate voi.
Con il comando precedente è stato cambiato il tipo di avvio in Automatico, però il servizio è ancora arrestato, se abbiamo bisogno di avviarlo si deve usare questo comando
psexec /accepteula -u crazy.cat -p password net start " nomeservizio"
Continuando con l’esempio di prima, per avviare il servizio di Windows Defender il comando diventerà
psexec /accepteula -u crazy.cat -p TurboLab.it net start "WinDefend"
Il file di comandi, dall’estensione .cmd, necessario per attivare il servizio di Windows Defender e avviarlo, dovrà quindi contenere queste due righe:
psexec /accepteula -u crazy.cat -p TurboLab.it sc config "WinDefend" start= auto
psexec /accepteula -u crazy.cat -p TurboLab.it net start "WinDefend"
Se qualcosa non dovesse funzionare, potete aggiungere il comando pause
, in fondo al file cmd, per arrestare l’esecuzione e permettervi di studiare cosa non ha funzionato e vedere gli error code.
psexec /accepteula -u crazy.cat -p TurboLab.it sc config "WinDefend" start= auto
psexec /accepteula -u crazy.cat -p TurboLab.it net start "WinDefend"
pause
Error code 0 vuol dire che è andato tutto bene, altri codici andranno analizzati tramite ricerche su Google a seconda dell’errore.
Se vi serve soltanto avviare il servizio, potete utilizzare soltanto la seconda riga nel file cmd.
psexec /accepteula -u crazy.cat -p TurboLab.it net start "WinDefend"
Fermare il servizio e disattivarne l’avvio
Sino ad ora abbiamo visto come attivare un servizio, che era disabilitato, e avviarlo. Per fare il percorso inverso, bisogna prima fermare il servizio attivo e poi modificare il suo tipo di avvio.
I comandi da utilizzare saranno quindi questi:
psexec /accepteula -u crazy.cat -p TurboLab.it net stop "WinDefend"
psexec /accepteula -u crazy.cat -p TurboLab.it sc config "WinDefend" start= disabled
Conclusioni
Qualche servizio potrebbe non essere disattivabile, o richiedere delle conferme all’utente, per esempio l’antivirus.
Se volete rendere invisibile all’utente finale il processo di modifica dei servizi, così da nascondere l’utenza amministratore e la sua password, potete utilizzare Bat to Exe converter per convertire il file di comandi in un eseguibile. Una volta creato l’eseguibile potete mettere un link sul desktop dell’utente per permettergli di agire sul servizio in maniera più veloce.
Invito a prestare molta attenzione con le modifiche dei servizi, pasticciare con quello sbagliato potrebbe causare problemi imprevisti al sistema operativo.
Il forum è, come sempre, a disposizione per qualsiasi problema e chiarimento.