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
|