How to get Command Line info for a process in PowerShell or C#

匿名 (未验证) 提交于 2019-12-03 01:10:02

问题:

e.g: if I run notepad.exe c:\autoexec.bat,

How can I get c:\autoexec.bat in Get-Process notepad in PowerShell?

Or how can I get c:\autoexec.bat in Process.GetProcessesByName("notepad"); in C#?

回答1:

In PowerShell you can get the command line of a process via WMI:

$process = "notepad.exe" Get-WmiObject Win32_Process -Filter "name = '$process'" | Select-Object CommandLine 

Note that you need admin privileges to be able to access that information about processes running in the context of another user. As a normal user it's only visible to you for processes running in your own context.



回答2:

This answer is excellent, however for futureproofing and to do future you a favor, Unless you're using pretty old powershell (in which case I recommend an update!) Get-WMIObject has been superseded by Get-CimInstance Hey Scripting Guy reference

Try this

$process = "notepad.exe" Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine  


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!