windows - Windows 中按 PID 显示的应用程序的开始时间、运行持续时间和位置

标签 windows batch-file vbscript cmd

有没有什么方法可以通过使用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/

相关文章:

windows - 带 % 和 ^ 的 CMD

batch-file - 批处理 - 如何在脚本中读取另一个命令行函数的输出?

c++ - 处理来自IMFSourceReader和IMFSample的图像数据

使用 Flask 服务器的 Python 脚本在 Windows 上退出需要很长时间

windows - 随机化批处理文件中的文本颜色和背景颜色

android - 批量选择位图/ImageViews android

c# - 使用 C#/.Net 时,只读如何影响目录?

asp.net - ASP : CommandArgument

javascript - VBscript 中 Do while/Do until 的区别

vbscript - 使用VBS运行带参数的程序