用PowerShell查找一个进程的父进程

在Windows中,我们打开进程任务管理器的时候会发现有许许多多的进程,但是当你点击一个进程的时候就会发现他还包含有一些子进程,可能已经没有在做任何处理了,或者夜有可能是某些病毒木马恶意进程,一般没有专用的软件是无法查看具体某一进程的父进程是什么的,今天我们用PowerShell来查看某一进程的父进程。

$process = Get-Process -Name notepad
$id = $process.Id
$instance = Get-CimInstance Win32_Process -Filter "ProcessId = '$id'"
$instance.ParentProcessId
$parentProcess = Get-Process -Id $instance.ParentProcessId
$parentProcess

如上代码,可以查看notepad进程的父进程是什么,我们一步步来拆解一下:

我们首先获得要查看进程的对象信息

$process = Get-Process -Name notepad

在获得进程对象信息后,在提取该进程的ID号

$id = $process.Id

在获得ID号后,我们这里使用Win32-Process WMI的方法来过滤出我们的进程,并得到该进程的数据对象。

$instance = Get-CimInstance Win32_Process -Filter "ProcessId = '$id'"

当用WMI的方法过滤得到我们的进程后,我们就可以直接调用ParentProcessId属性来得到我们的父进程Id号了。

$instance = Get-CimInstance Win32_Process -Filter "ProcessId = '$id'"
$instance.ParentProcessId

既然最终得到ParentProcessId号后,我们就可以用Get-Process方法查找出到底哪个进程是我们的父对象了。

$parentProcess = Get-Process -Id $instance.ParentProcessId
$parentProcess

    原文作者:itanders
    原文地址: https://blog.csdn.net/itanders/article/details/46553367
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞