我有问题从我拥有ProcessID的Process获取ParentProcessID.我这样尝试过,这就是它对ProcessID的作用:
$p = Get-Process firefox
$p.Id
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用ParentProcessID尝试它,它不起作用:
$p.ParentProcessId
Run Code Online (Sandbox Code Playgroud)
有没有办法通过ProcessID获取ParentProcessID?
Pas*_*ann 10
这对我有用:
$p = Get-Process firefox
$parent = (gwmi win32_process | ? processid -eq $p.Id).parentprocessid
$parent
Run Code Online (Sandbox Code Playgroud)
输出如下:
1596
Run Code Online (Sandbox Code Playgroud)
而且1596是匹配ParentProcessID我受够了ProcessExplorer检查它。
在 PowerShell Core 中,cmdletProcess返回的对象Get-Process包含一个 Parent 属性,该属性为您Process提供父进程的相应对象。
例子:
> $p = Get-Process firefox
> $p.Parent.Id
Run Code Online (Sandbox Code Playgroud)
如注释中所述,从Get-Process(System.Diagnostics.Process)返回的对象不包含父进程ID.
为此,您需要检索Win32_Process类的实例:
PS C:\> $ParentProcessIds = Get-CimInstance -Class Win32_Process -Filter "Name = 'firefox.exe'"
PS C:\> $ParentProcessIds[0].ParentProcessId
3816
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7958 次 |
| 最近记录: |