作成 2009.12.29
更新 2009.12.29
サービスの状態をファイルに書き込むサンプルコード

サービスがいつの間にか停止しているらしいということで即興で書いたサンプルコードです。
Windows Server 2003 のタスク スケジューラーでも動作確認済み

Option Explicit
Const SAVE_DIR = "C:\temp\"
Const ForWriting = 2
Dim FSO
Dim objFile
Dim logtime
Dim wmiService
Dim objEnumerator
Dim objInstance

Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(SAVE_DIR) Then FSO.CreateFolder(SAVE_DIR)
logtime = fGetTime()
Set objFile = FSO.OpenTextFile(SAVE_DIR & logtime & ".txt", ForWriting, True)
Set objEnumerator = wmiService.InstancesOf("Win32_Service")
For Each objInstance In objEnumerator
  objFile.WriteLine objInstance.Caption & vbTab & objInstance.StartMode & vbTab &objInstance.State
Next
objFile.Close

Function fGetTime
  Dim time, strMon, strDay, strHour, strMin, strSec
  Dim tempTimer, strMilli
  time = Now()
  tempTimer = Timer
  strMon = Right("0" & Month(time), 2)
  strDay = Right("0" & Day(time), 2)
  strHour = Right("0" & Hour(time), 2)
  strMin = Right("0" & Minute(time), 2)
  strSec = Right("0" & Second(time), 2)
  strMilli = Right("000" & Int((tempTimer - Int(tempTimer)) * 1000), 3)

  fGetTime = Year(time) & strMon & strDay & "-" & _
    strHour & strMin & strSec & "." & strMilli
End Function
タグ: WMI VBScript

©2004-2017 UPKEN IPv4