Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Script per servizi Windows
Scritto da Emanuele Gianturco il 16-07-2007 ore 09:29
Intel Parallel Studio XE
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
  1. <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:
  1. <span style="font-size:1.0em">net start Tomcat5
  2. net start MySQL</span>


mentre per fermare i servizi il secondo batch conterrà le seguenti istruzioni:
  1. <span style="font-size:1.0em">net stop Tomcat5
  2. 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:
  1. [size]set myServices = GetObject("winmgmts:")
  2. set myObject = myServices.Get("Win32_Service.Name='Tomcat5'")
  3. myObject.StartService()
  4. set myObject = myServices.Get("Win32_Service.Name='MySQL'")
  5. myObject.StartService()
[/size]

mentre per arrestarli avremo fermaServizi.vbs:
  1. <span style="font-size:1.0em">set myServices = GetObject("winmgmts:")
  2. set myObject = myServices.Get("Win32_Service.Name='Tomcat5'")
  3. myObject.StopService()
  4. set myObject = myServices.Get("Win32_Service.Name='MySQL'")
  5. 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:
  1. <span style="font-size:1.0em">WScript.Echo "Inizio"
  2. For each Serv in GetObject("winmgmts:").InstancesOf ("Win32_Service")
  3.  
  4. If Serv.DisplayName="Apache Tomcat" Then
  5.  
  6. WScript.Echo "Name:" &amp; Serv.Name &amp;chr(10)&amp;chr(13)&amp; "DisplayName: "&amp; 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)
  7.  
  8. Serv.StartService()
  9. End If   
  10. Next
  11. WScript.Echo "Fine"</span>


La lista completa degli attributi e dei metodi si può reperire su Win32_Service Microsoft Developer Network.
Precedente: Corso su Ruby: costanti
Successiva: VB Decompiler, il reverse engineering del Visual Basic P-Code
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.281 secondi.