在数据库上,我可以得到所有当前正在运行的进程的列表,以及将其踢出的sql命令。
我想在窗口框中做类似的事情。
我可以得到进程列表,但不能将其踢出的命令行。
我的问题是: 给定一个Windows上的PID – 如何find执行它的命令行指令?
假设:
Powershell和WMI。
Get-WmiObject Win32_Process | Select ProcessId,CommandLine
要么
Get-WmiObject -Query "SELECT CommandLine FROM Win32_Process WHERE ProcessID = 3352"
请注意,您必须有权访问有关进程的这些信息。 因此,如果您想了解的进程在特权上下文中运行,则可能必须以admin身份运行该命令。
您可以使用WMI子系统,使用WMIC.EXE获取此信息。 假设PID为600:
wmic.exe path Win32_Process where handle='600' get name, commandline /format:list
您还可以search过程的名称或其他特征。 使用此命令列出所有属性:
wmic.exe path Win32_Process get /format:list
其他的答案当然是很好的select,因为他们的命令行本质上(和我从标签中看到,这是你想要的),将在自动化系统中很好地为您服务。 当然,有些人可能想用GUI来探索这种信息,所以这里有一个替代scheme。
Process Explorer是由Microsoft维护的Sysinternals工具。 它可以在进程的属性对话框中显示进程的命令行以及启动进程的父进程,尽pipe该进程的名称可能不再可用。 这是进程属性对话框:
如果您想要了解何时启动进程以及在什么条件下的更详细的审计线索,您可以转向另一个称为进程监视器的Sysinternals工具。 在这里,您可以筛选“stream程启动”事件,了解stream程启动的环境,并查看当时发生的其他事件。 这是一个非常强大的程序。 以下是事件属性对话框: