
나는 Linux에서 이 명령이 매우 유용하다는 것을 알고 pstree
있으며 이와 유사한 것이 내가 찾고 있는 것입니다. 하지만 Windows 터미널에서 자세한 프로세스 목록(트리)을 만드는 방법은 무엇입니까?
답변1
라는 프로그램을 사용할 수 있습니다.프로세스 모니터. 이 프로그램을 사용하면 원하는 것을 할 수 있습니다.
프로세스 모니터는 실시간 파일 시스템, 레지스트리 및 프로세스/스레드 활동을 보여주는 Windows용 고급 모니터링 도구입니다. 두 가지 레거시 Sysinternals 유틸리티인 Filemon과 Regmon의 기능을 결합하고 풍부하고 비파괴적인 필터링, 세션 ID 및 사용자 이름과 같은 포괄적인 이벤트 속성, 신뢰할 수 있는 프로세스 정보, 통합 기호 지원이 포함된 전체 스레드 스택을 포함한 광범위한 향상된 기능 목록을 추가합니다. 각 작업에 대해 파일에 대한 동시 로깅 등이 가능합니다. 고유하고 강력한 기능을 통해 프로세스 모니터는 시스템 문제 해결 및 맬웨어 헌팅 툴킷의 핵심 유틸리티가 됩니다.
또한 원하는 것을 정확하게 제공합니다.
프로세스 트리 도구는 추적에서 참조되는 모든 프로세스의 관계를 보여줍니다.
답변2
pslist64.exe -t
다음에서 사용SysInternals.
답변3
노력하다프로세스 익스포러시스인터널스에서. 고급 작업 관리자와 같으며 트리 보기도 있습니다.
답변4
이 powershell cmdlet은 Print-ProcessTree
기본 프로세스 트리를 나열합니다.
function Print-ProcessTree() {
function Get-ProcessAndChildProcesses($Level, $Process) {
"{0}[{1,-5}] [{2}]" -f (" " * $Level), $Process.ProcessId, $Process.Name
$Children = $AllProcesses | where-object {$_.ParentProcessId -eq $Process.ProcessId -and $_.CreationDate -ge $Process.CreationDate}
if ($null -ne $Children) {
foreach ($Child in $Children) {
Get-ProcessAndChildProcesses ($Level + 1) $Child
}
}
}
$AllProcesses = Get-CimInstance -ClassName "win32_process"
$RootProcesses = @()
# Process "System Idle Process" is processed differently, as ProcessId and ParentProcessId are 0
# $AllProcesses is sliced from index 1 to the end of the array
foreach ($Process in $AllProcesses[1..($AllProcesses.length-1)]) {
$Parent = $AllProcesses | where-object {$_.ProcessId -eq $Process.ParentProcessId -and $_.CreationDate -lt $Process.CreationDate}
if ($null -eq $Parent) {
$RootProcesses += $Process
}
}
# Process the "System Idle process" separately
"[{0,-5}] [{1}]" -f $AllProcesses[0].ProcessId, $AllProcesses[0].Name
foreach ($Process in $RootProcesses) {
Get-ProcessAndChildProcesses 0 $Process
}
}
다음에서 수정됨실제 관리자 .nl.