Jak uzyskać informacje z linii poleceń dla procesu w PowerShell lub C#

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

Jak Mogę uzyskać c:\autoexec.bat w Get-Process notepad w PowerShell?

Lub jak Mogę dostać c:\autoexec.bat w Process.GetProcessesByName("notepad"); W C#?

Author: aphoria, 2013-07-10

2 answers

W PowerShell możesz uzyskać wiersz poleceń procesu za pomocą WMI:

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

Zauważ, że potrzebujesz uprawnień administratora, aby mieć dostęp do informacji o procesach uruchomionych w kontekście innego użytkownika. Jako zwykły użytkownik jest widoczny tylko dla procesów uruchomionych w twoim własnym kontekście.

 85
Author: Ansgar Wiechers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-31 09:18:58

Ta odpowiedź jest doskonała, jednak na przyszłość i zrobić ci przysługę, chyba że używasz dość starego powershell (w takim przypadku polecam aktualizację!) Get-WmiObject został zastąpiony przez Get-CimInstance Hey Scripting Guy reference

Spróbuj tego

$process = "notepad.exe"
Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine 
 5
Author: PsychoData,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-13 19:53:48