Wednesday, March 07, 2007

วิธี start service ของ window โดยใช้ VBScript

เนื่องจากมี server อยู่้ตัวหนึ่งมี service อยู่หลายตัวและต้อง start ตามลำดับเท่านั้น
ถ้าไม่ตามลำดับจะทำงานไม่ถูกต้องจะใช้เป็น dependency* ก็ไม่ได้ เพราะต้องรอให้ service แรกโหลดข้อมูลจำนวนมหาศาลเสร็จก่อนถึงจะทำได้ ก็เลยหาวิธีแก้จนได้วิธีโดยการ start แบบใช้ vbscript
ดังนี้


strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

'Service1 = ชื่อ service ที่ต้องการ start
Set objShare = objWMIService.Get("Win32_Service.Name='Service1'")
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='Service1'", "StartService")

'เวลามีหน่วย เป็น milliseconds 1s = 10000
Wscript.Sleep 120000

'Service2 = ชื่อ service ที่ต้องการ start
Set objShare = objWMIService.Get("Win32_Service.Name='Service2'")
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='Service2'", "StartService")


หมายเหตุ
*dependency คือถ้าservice1 เป็น dependency ของ service2 จะ start 2 ได้ต้อง start1