【发布时间】:2011-12-29 23:57:35
【问题描述】:
我有以下代码,我试图在其中收集有关 Windows Server 2003 中进程的丰富信息。当我试图为在初始 WMI 查询和调用之间完成的进程拉回进程所有者时,会出现问题得到主人。如果该过程同时完成,则会引发错误并且脚本停止。我宁愿只检查进程是否不可用,如果不可用则不输出到控制台。我查看了参考资料,似乎没有合适的方法。非常感谢任何帮助。
引发的错误是...
getProcessInfo2.vbs(42, 5) SWbemObjectEx: Not found
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"_
& strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process",,48)
For Each objItem in colItems
'Calculated Fields
sngProcessTime = ( CSng(objItem.KernelModeTime) + CSng(objItem.UserModeTime)) / 10000000
Wscript.Echo
Wscript.Echo "ProcessId : " & objItem.ProcessId
Wscript.Echo "CommandLine : " & objItem.CommandLine
Wscript.Echo "CreationDate : " & objItem.CreationDate
Wscript.Echo "HandleCount : " & objItem.HandleCount
Wscript.Echo "Name : " & objItem.Name
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 "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 "ThreadCount : " & objItem.ThreadCount
Wscript.Echo "VirtualSize : " & objItem.VirtualSize
Wscript.Echo "WriteOperationCount : " & objItem.WriteOperationCount
Wscript.Echo "WriteTransferCount : " & objItem.WriteTransferCount
Wscript.Echo "CPUTime : " & sngProcessTime
Dim Return
Return = objItem.GetOwner(strNameOfUser)
If Return <> 0 Then strNameOfUser = "unavailable"
Wscript.Echo "Owner : " & strNameOfUser
Next
【问题讨论】: