有没有什么方法可以通过使用CMD或VBS在Windows下使用其PID值获取开始时间(带日期),总运行时间和正在运行的应用程序的位置?如果是这样,如何?提前致谢。
最佳答案
可以查询Win32_Process
带有 VBScript 的 WMI 类,用于获取可执行路径和进程的启动时间。持续时间可以从开始时间得出:
pid = 23
Set wmi = GetObject("winmgmts://./root/cimv2")
Set convert = CreateObject("WbemScripting.SWbemDateTime")
qry = "SELECT * FROM Win32_Process WHERE ProcessId = " & pid
For Each p In wmi.ExecQuery(qry)
If IsNull(p.CreationDate) Then
'leave start time and duration empty if CreationDate can't be read
startTime = ""
duration = ""
Else
'convert start time from a string yyyyMMddHHmmss.ffffff±zzz to a date
convert.Value = p.CreationDate
startTime = convert.GetVarDate(True)
'calculate duration in minutes
duration = DateDiff("n", startTime, Now)
End If
WScript.Echo startTime & vbTab & duration & vbTab & p.ExecutablePath
Next
请注意,您需要SeDebugPrivilege
权限(管理员默认拥有)才能看到其他用户进程的可执行路径。如果没有该特权,p.ExecutablePath
将为未在当前用户的上下文中运行的进程Null
。
关于windows - Windows 中按 PID 显示的应用程序的开始时间、运行持续时间和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27957753/