Nel lavoro quotidiano di sviluppatore su piattaforma Windows si ha spesso l'esigenza di attivare e disattivare servizi. Si possono allora creare tutta una serie di
aiuti per facilitare queste operazioni
sistemistiche. Una prima facilitazione è creare sul desktop un collegamento che punti ad
<span style="font-size:1.0em">%SYSTEMROOT%system32services.msc</span>
per un rapido richiamo dell'interfaccia. Successivamente è utile scrivere qualche script, ad esempio un paio di file batch, che possiamo chiamare
avviaServizi.bat e
fermaServizi.bat.
Con il primo batch possiamo far partire tutti i servizi che ci servono per testare l'applicazione che stiamo sviluppando; ad esempio se stiamo sviluppando un'applicazione tramite JSP sotto Apache/Tomcat e come database MySql, potremmo scrivere il seguente batch:
<span style="font-size:1.0em">net start Tomcat5
net start MySQL</span>
mentre per fermare i servizi il secondo batch conterrà le seguenti istruzioni:
<span style="font-size:1.0em">net stop Tomcat5
net stop MySQL</span>
Un altro modo per ottenere lo stesso risultato è quello di utilizzare codice VBScript; per avviare i servizi avremo, dunque,
avviaServizi.vbs:
[size]set myServices = GetObject("winmgmts:")set myObject = myServices.Get("Win32_Service.Name='Tomcat5'")myObject.StartService()
set myObject = myServices.Get("Win32_Service.Name='MySQL'")myObject.StartService()
[/size]
mentre per arrestarli avremo
fermaServizi.vbs:
<span style="font-size:1.0em">set myServices = GetObject("winmgmts:")set myObject = myServices.Get("Win32_Service.Name='Tomcat5'")myObject.StopService()
set myObject = myServices.Get("Win32_Service.Name='MySQL'")myObject.StopService()</span>
Il nome da utilizzare negli script è
Nome del servizio, che appare nelle proprietà e risulta diverso dal
Nome visualizzato, colonna
Nome della lista di default dei servizi. E' possibile recuperare tutti i servizi facendo un ciclo su
Win32_Service, e visualizzare vari attributi. Il seguente esempio mostra come farlo per uno in particolare:
<span style="font-size:1.0em">WScript.Echo "Inizio"
For each Serv in GetObject("winmgmts:").InstancesOf ("Win32_Service")
If Serv.DisplayName="Apache Tomcat" Then
WScript.Echo "Name:" & Serv.Name &chr(10)&chr(13)& "DisplayName: "& Serv.DisplayName &chr(10)&chr(13)&"Description: "& Serv.Description &chr(10)&chr(13)& "PathName: "& Serv.PathName &chr(10)&chr(13)& "Started: "& Serv.Started &chr(10)&chr(13)& "State: "& Serv.State &chr(10)&chr(13)& "Status: "& Serv.Status &chr(10)&chr(13)
Serv.StartService()
End If
Next
WScript.Echo "Fine"</span>
La lista completa degli attributi e dei metodi si può reperire su
Win32_Service Microsoft Developer Network.