タグ
  Active Directory (51)
  ANSI (1)
  bash (1)
  BAT (14)
  bind (1)
  CentOS (3)
  CSharp (1)
  C言語 (4)
  DNS (3)
  Excel (1)
  Fedora (4)
  FreeBSD (3)
  iSCSI (1)
  Java (11)
  JavaScript (6)
  Link (4)
  Linux (15)
  Mail (1)
  Microsoft (4)
  NIS (1)
  OpenLDAP (2)
  OpenSolaris (4)
  PHP (2)
  PostgreSQL (2)
  PowerShell (33)
  RFC (3)
  Solaris (10)
  SQL Server (1)
  Ubuntu (3)
  VBScript (65)
  Visual Basic (1)
  VMware (2)
  Windows (14)
  WMI (16)
  WSF (5)
  WSH (10)
  作成中 (5)
  慣用句 (1)
  正規表現 (6)
サービスの状態をファイルに書き込むサンプルコード

サービスがいつの間にか停止しているらしいということで即興で書いたサンプルコードです。
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-2010 UPKEN