'/////////////////////////////////////////////////////////// '/ '/ システム: '/ プログラム: '/ 機能: '/ '/ '/ '/ '/////////////////////////////////////////////////////////// 'Constを上書きしないよう設定 Const ForAppending = 8 '** ローカルコンピューターの指定 strComputer = "." '** LOGファイル名の指定 strLogFile = "Monitor.log" set objAug = Wscript.Arguments set objFSO = CreateObject("Scripting.FileSystemObject") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") set objRefresher = CreateObject("WbemScripting.Swbemrefresher") set objProcessor = objRefresher.AddEnum(objWMIService, "Win32_PerfFormattedData_PerfOS_Processor").ObjectSet set objMemory = objRefresher.AddEnum(objWMIService, "Win32_PerfFormattedData_PerfOS_Memory").ObjectSet ' Set colDiskDrives = objWMIService.ExecQuery _ ("Select * from win32_perfformatteddata_perfdisk_logicaldisk where Name <> '_Total'") objRefresher.Refresh set objLogfile = objFSO.OpenTextFile(strLogFile, ForAppending, true) '** LogFile Header objLogFile.WriteLine "Date" & vbtab & "Time" & vbtab & "CPU" & vbtab & "FreeMemory" & vbtab & "FreeHDD1" & vbtab & "FreeHDD2" & vbtab & "FreeHDD3" objLogFile.Close Do For Each intProcessorUse in objProcessor If intProcessorUse.Name = "_Total" Then CPUstat = intProcessorUse.PercentProcessorTime End If Next For Each intAvailableBytes in objMemory FreeMem = intAvailableBytes.AvailableMBytes Next For Each objDiskDrive in colDiskDrives If objDiskDrive.Name = "C:" Then HDD1 = objDiskDrive.FreeMegabytes End if If objDiskDrive.Name = "D:" Then HDD2 = objDiskDrive.FreeMegabytes End if If objDiskDrive.Name = "E:" Then HDD3 = objDiskDrive.FreeMegabytes End if If HDD1 = "" Then HDD1 = "_" End if If HDD2 = "" Then HDD2 = "_" End if If HDD3 = "" Then HDD3 = "_" End if Next set objLogfile = objFSO.OpenTextFile(strLogFile, ForAppending, true) objLogFile.WriteLine FormatDateTime(Now) & vbTab & CPUstat & vbTab & FreeMem & vbTab & HDD1 & vbTab & HDD2 & vbTab & HDD3 objLogFile.Close set objLogFile = Nothing If WScript.Arguments.Count = 1 Then WScript.sleep objAug(0) Else WScript.sleep 600000 End IF objRefresher.Refresh Loop