Previous Page
Next Page

Writing an Informative WMI Script Step-By-Step Instructions

In this section, you are going to write a WMI script that returns a lot of information about processes. This will be used as a starter script later.

1.
Open Notepad or your faovirite script editor.

2.
On the first line, type Option Explicit to ensure you declare all variables used in the script.

3.
Declare the following variables: objWMIService, colItems, objItem, and wmiQuery. To specify what each variable is used for, add comments following each declaration.

4.
Assign wmiQuery to be equal to a WQL Select statement that returns everything from the win32_Process class. Your code will look like the following:

wmiQuery = "Select * from Win32_Process"

5.
Set objWMIService equal to the object returned by the GetObject method when used in conjunction with the WMI moniker. Your code will look like the following:

Set objWMIService = GetObject("winmgmts:\\")

6.
Set colItems equal to object returned by issuing the WQL statement held by the variable wmiQuery when you use the ExecQuery method. Your code will look like the following:

Set colItems = objWMIService.ExecQuery(wmiQuery)

7.
Use a For Each...Next loop to iterate through colItems. Instead of typing all the properties in your script, open the student resource CD and copy the For Each...Next loop from the StepByStep_Starter_For Each Next Loop.vbs script in \My Documents\Microsoft Press\VBScriptSBS\ch10\StepByStep.

8.
Save your work as YourNameInformativeWMI.vbs.

9.
Run your script in CScript. Your completed script will look like the following:

Option Explicit
On Error Resume Next
Dim wmiQuery
Dim objWMIService
Dim colItems
Dim objItem

wmiQuery = "Select * from Win32_Process"
Set objWMIService = GetObject("winmgmts:\\")
Set colItems = objWMIService.ExecQuery(wmiQuery)

For Each objItem In colItems
  WScript.Echo "Caption: " & objItem.Caption
  WScript.Echo "CommandLine: " & objItem.CommandLine
  WScript.Echo "CreationClassName: " & objItem.CreationClassName
  WScript.Echo "CreationDate: " & objItem.CreationDate
  WScript.Echo "CSCreationClassName: " & objItem.CSCreationClassName
  WScript.Echo "CSName: " & objItem.CSName
  WScript.Echo "Description: " & objItem.Description
  WScript.Echo "ExecutablePath: " & objItem.ExecutablePath
  WScript.Echo "ExecutionState: " & objItem.ExecutionState
  WScript.Echo "Handle: " & objItem.Handle
  WScript.Echo "HandleCount: " & objItem.HandleCount
  WScript.Echo "InstallDate: " & objItem.InstallDate
  WScript.Echo "KernelModeTime: " & objItem.KernelModeTime
  WScript.Echo "MaximumWorkingSetSize: " & objItem.MaximumWorkingSetSize
  WScript.Echo "MinimumWorkingSetSize: " & objItem.MinimumWorkingSetSize
  WScript.Echo "Name: " & objItem.Name
  WScript.Echo "OSCreationClassName: " & objItem.OSCreationClassName
  WScript.Echo "OSName: " & objItem.OSName
  WScript.Echo "OtherOperationCount: " & objItem.OtherOperationCount
  WScript.Echo "OtherTransferCount: " & objItem.OtherTransferCount
  WScript.Echo "PageFaults: " & objItem.PageFaults
  WScript.Echo "PageFileUsage: " & objItem.PageFileUsage
  WScript.Echo "ParentProcessId: " & objItem.ParentProcessId
  WScript.Echo "PeakPageFileUsage: " & objItem.PeakPageFileUsage
  WScript.Echo "PeakVirtualSize: " & objItem.PeakVirtualSize
  WScript.Echo "PeakWorkingSetSize: " & objItem.PeakWorkingSetSize
  WScript.Echo "Priority: " & objItem.Priority
  WScript.Echo "PrivatePageCount: " & objItem.PrivatePageCount
  WScript.Echo "ProcessId: " & objItem.ProcessId
  WScript.Echo "QuotaNonPagedPoolUsage: " & objItem.QuotaNonPagedPoolUsage
  WScript.Echo "QuotaPagedPoolUsage: " & objItem.QuotaPagedPoolUsage
  WScript.Echo "QuotaPeakNonPagedPoolUsage: " & _
    objItem.QuotaPeakNonPagedPoolUsage
   WScript.Echo "QuotaPeakPagedPoolUsage: " & objItem.QuotaPeakPagedPoolUsage
  WScript.Echo "ReadOperationCount: " & objItem.ReadOperationCount
  WScript.Echo "ReadTransferCount: " & objItem.ReadTransferCount
  WScript.Echo "SessionId: " & objItem.SessionId
  WScript.Echo "Status: " & objItem.Status
  WScript.Echo "TerminationDate: " & objItem.TerminationDate
  WScript.Echo "ThreadCount: " & objItem.ThreadCount
  WScript.Echo "UserModeTime: " & objItem.UserModeTime
  WScript.Echo "VirtualSize: " & objItem.VirtualSize
  WScript.Echo "WindowsVersion: " & objItem.WindowsVersion
  WScript.Echo "WorkingSetSize: " & objItem.WorkingSetSize
  WScript.Echo "WriteOperationCount: " & objItem.WriteOperationCount
  WScript.Echo "WriteTransferCount: " & objItem.WriteTransferCount
  WScript.Echo " *********************************"

Next


Previous Page
Next Page