あるプロセスの子プロセスのみを取得するPowerShellスクリプト備忘録

拾い物。

function Get-ChildProcesses ($ParentProcessId) {
    $filter = "parentprocessid = '$($ParentProcessId)'"
    Get-CIMInstance -ClassName win32_process -filter $filter | Foreach-Object {
            $_
            if ($_.ParentProcessId -ne $_.ProcessId) {
                Get-ChildProcesses $_.ProcessId
            }
        }
}
>  Get-ChildProcesses $pid

ProcessId Name        HandleCount WorkingSetSize VirtualSize
--------- ----        ----------- -------------- -----------
2892      conhost.exe 318         27234304       2203509317632
2096      notepad.exe 283         20430848       2203495129088

stackoverflow.com