' ============================================================
' GetProcessReport.vbs
'
' Reports Processes via WMI (Win32_Process).
'
' Usage: cscript GetProcessReport.vbs
' ============================================================

Option Explicit

Dim objWMIService, colItems, objItem, strOutput

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT Name, ProcessId, WorkingSetSize, ThreadCount FROM Win32_Process")

strOutput = ""
For Each objItem In colItems
    strOutput = strOutput & "Name: " & objItem.Name & vbCrLf
    strOutput = strOutput & "ProcessId: " & objItem.ProcessId & vbCrLf
    strOutput = strOutput & "WorkingSetSize: " & objItem.WorkingSetSize & vbCrLf
    strOutput = strOutput & "ThreadCount: " & objItem.ThreadCount & vbCrLf
    strOutput = strOutput & String(40, "-") & vbCrLf
Next

If strOutput = "" Then
    WScript.Echo "No Processes found."
Else
    WScript.Echo strOutput
End If