例:notepad.exe c:\autoexec.bat
を実行すると、
PowerShellでc:\autoexec.bat
のGet-Process notepad
を取得するにはどうすればよいですか?
または、C#でProcess.GetProcessesByName("notepad");
でc:\autoexec.bat
を取得するにはどうすればよいですか?
PowerShellでは、WMIを介してプロセスのコマンドラインを取得できます。
$process = "notepad.exe"
Get-WmiObject Win32_Process -Filter "name = '$process'" | Select-Object CommandLine
別のユーザーのコンテキストで実行されているプロセスに関する情報にアクセスするには、管理者権限が必要であることに注意してください。通常のユーザーとしては、自分のコンテキストで実行されているプロセスに対してのみ表示されます。
この答えは優れていますが、将来の保証と将来のために、かなり古いPowerShellを使用していない限り(この場合は更新をお勧めします!)Get-WMIObjectはGet-CimInstanceに置き換えられました Hey Scriptingガイ参照
これを試して
$process = "notepad.exe"
Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine