Scripts to monitor Processes
Monitoring Process AvailabilityMonitoring Process Creation
Monitoring Process Deletion
Monitoring Process Performance
Monitoring Processor Use by Process
Monitoring Process Availability
Identifies whether or not a hypothetical process Database.exe is running.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'Database.exe'") If colProcesses.Count = 0 Then Wscript.Echo "Database.exe is not running." Else Wscript.Echo "Database.exe is running." End If
Monitoring Process Creation
Temporary event consumer that issues an alert each time a new process is created.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colMonitoredProcesses = objWMIService. _ ExecNotificationQuery("select * from __instancecreationevent " _ & " within 1 where TargetInstance isa 'Win32_Process'") i = 0 Do While i = 0 Set objLatestProcess = colMonitoredProcesses.NextEvent Wscript.Echo objLatestProcess.TargetInstance.Name Loop
Monitoring Process Deletion
Temporary event consumer that issues an alert each time a process terminates.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colMonitoredProcesses = objWMIService. _ ExecNotificationQuery("select * from __instancedeletionevent " _ & "within 1 where TargetInstance isa 'Win32_Process'") i = 0 Do While i = 0 Set objLatestProcess = colMonitoredProcesses.NextEvent Wscript.Echo objLatestProcess.TargetInstance.Name Loop
Monitoring Process Performance
Reports statistics such as thread count and working set size for all processes running on a computer.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process") For Each objProcess in colProcessList Wscript.Echo "Process: " & objProcess.Name Wscript.Echo "Process ID: " & objProcess.ProcessID Wscript.Echo "Thread Count: " & objProcess.ThreadCount Wscript.Echo "Page File Size: " & objProcess.PageFileUsage Wscript.Echo "Page Faults: " & objProcess.PageFaults Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize Next
Monitoring Processor Use by Process
Reports processor use time, in seconds, for each process running on a computer.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery _ ("Select * from Win32_Process") For Each objProcess in colProcesses sngProcessTime = ( CSng(objProcess.KernelModeTime) + _ CSng(objProcess.UserModeTime)) / 10000000 Wscript.echo objProcess.name & VbTab & sngProcessTime Next