This short script uses WMI to display the same information than in the tool "tasklist", but dumping the result on the console. It can dump remote tasks running on another computer,
這個(gè)簡短的腳本使用wmi顯示與工具“tasklist”中相同的信息,但只有在命令行下輸出結(jié)果。它也可以在另一臺(tái)計(jì)算機(jī)上查看遠(yuǎn)程任務(wù),
文件名:tasklist.vbs
要求:無
作者:Jean-Luc Antoine
提交日期:2005年7月14日
類別:4K
Option explicit
If right(Ucase(WScript.FullName),11)="WSCRIPT.EXE" Then
wscript.echo "You should run this script from the command line (cmd)" vbCrLf "cscript " wscript.ScriptFullName
WScript.Quit
End If
dim strComputer,objWMIService,colProcesses,objProcess,ProcessTime,strCreationDate,user,Domain,strOwner,h,m,s,chaine
strComputer = "."
Set objWMIService = GetObject("winmgmts:" "{impersonationLevel=impersonate}!\\" strComputer "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process") ' where Name='IEXPLORE.EXE'
Chaine="Process |Creation Date Time |Handles|Threads|Owner |Priority|MemoryUsage|MaxMemUsage|MemRequired|MaxMemRequi| Swap| Max Swap|CPU time|PID |PFaults|Path" vbCrLf
For Each objProcess in colProcesses
If objProcess.GetOwner ( User, Domain ) = 0 Then
strOwner= Domain "\" User
Else
strOwner="Unknown"
End If
ProcessTime=(CSng(objProcess.KernelModeTime) + CSng(objProcess.UserModeTime)) / 10000000
h=right("0" fix(ProcessTime/60/60),2)
ProcessTime=ProcessTime-h*60*60
m=right("0" fix(ProcessTime/60),2)
s=Right("0" round(ProcessTime-m*60),2)
strCreationDate=Mid(objProcess.CreationDate,7,2) "/" Mid(objProcess.CreationDate,5,2) "/" Left(objProcess.CreationDate,4) " " Mid(objProcess.CreationDate,9,2) ":" Mid(objProcess.CreationDate,11,2) ":" Mid(objProcess.CreationDate,13,2)
If strCreationDate="http:// ::" Then strCreationDate=Space(19)
Chaine=Chaine Left(objProcess.Name space(8),12) "|" _
strCreationDate "|" Right(Space(6) objProcess.HandleCount,7) "|" _
Right(Space(6) objProcess.ThreadCount,7) "|" _
Left(strOwner space(14),19) "|" _
Left(objProcess.Priority Space(7),8) "|" _
Right(Space(10) objProcess.PageFileUsage ,11) "|" _
Right(Space(10) objProcess.PeakPageFileUsage ,11) "|" _
Right(Space(8) objProcess.WorkingSetSize ,11) "|" _
Right(Space(8) objProcess.PeakWorkingSetSize ,11) "|" _
Right(Space(10) objProcess.VirtualSize ,11) "|" _
Right(Space(10) objProcess.PeakVirtualSize ,11) "|" _
h ":" m ":" s "|" _
Left(objProcess.ProcessID space(3),4) "|" _
Right(Space(6) objProcess.PageFaults ,7) "|" objProcess.ExecutablePath
Chaine=Chaine vbCrLf
Next
wscript.echo chaine
在cmd下 cscript tasklist.vbs 即可,也可以在cmd下 cscript tasklist.vbs >list.txt直接將結(jié)果保存為list.txt查看也比較容易