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 [code]
%SYSTEMROOT%system32services.msc[/code] 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:
[code]
net start Tomcat5
net start MySQL[/code]
mentre per fermare i servizi il secondo batch conterrà le seguenti istruzioni:
[code]
net stop Tomcat5
net stop MySQL[/code]
Un altro modo per ottenere lo stesso risultato è quello di utilizzare codice VBScript; per avviare i servizi avremo, dunque,
avviaServizi.vbs:
[code][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()[/code][/size]
mentre per arrestarli avremo
fermaServizi.vbs:
[code]
set myServices = GetObject("winmgmts:")
set myObject = myServices.Get("Win32_Service.Name='Tomcat5'")
myObject.StopService()
set myObject = myServices.Get("Win32_Service.Name='MySQL'")
myObject.StopService()[/code]
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:
[code]
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"[/code]
La lista completa degli attributi e dei metodi si può reperire su
Win32_Service Microsoft Developer Network.