Content

vbs实现的tasklist效果代码(vbs代码怎么写)深度揭秘

文章摘要

这篇文章主要介绍了如何使用Visual Basic脚本监控计算机中的进程信息。代码通过检查脚本文件名是否为"WSCRIPT.EXE"来确保脚本只能在管理员权限下运行。接着,代码使用"winmgmts" enumerator遍历计算机中的进程,并从"Win32_Process"查询中获取所有进程数据。通过循环遍历每个进程,代码提取了包括进程名称、创建日期时间、 handles、 threads、用户信息、进程时间和内存使用等详细信息,并将这些数据整合到一个格式化的字符串中。最后,代码将输出到命令行界面,方便用户查看进程详情。

 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