Process Explorer工具
1.Procexp概述
procexp的部分功能包括:
顯示進程父子關系的樹形圖視圖
代碼著色,用于區分進程的類型和狀態
工具提示:可顯示命令行信息以及與進程有關的其他信息
帶小數的CPU用量:用于顯示雖未徹底不活躍但只使用極少量CPU時間的進程
可查找哪些進程加載了某個dll
默認列:
Process(進程):該列顯示了可執行文件的名稱,如果Procexp可以識別可執行文件的完整路徑,還會顯示文件的圖標,列表的前三行代表“偽進程”
CPU:該列顯示了上一次刷新間隙時進程消耗的CPU時間百分率,四舍五入為包含兩位小數
Private Bytes:該列顯示了進程專用,不與其他進程共享的已分配和已提交字節數。每進程的專用字節數包含堆(Heap)和棧(Stack)內存。該值持續增加通常意味著內存泄漏
Working Set(工作集):該列顯示了內存管理器為該進程分配的物理內存數量
PID:進程ID
Description(描述)和Company Name(公司名):只有在Procexp能夠識別文件路徑并讀取文件時這兩列才會顯示內容
竅門:在主窗口和下方窗格中,可以按下Ctrl+C將所選中的內容以“制表符分隔的文本”像是復制到剪貼板?
進程樹:
process列始終會顯示在最左側,該列包含三種排序模式:升序、降序、進程樹
默認情況下,當一個進程創建另一個進程后,Windows會將創建進程的進程(父進程)的進程ID(PID)包含在新進程(子進程)的內部數據結構中
進程活動:
直接右鍵點擊,或選中后從【Process】菜單中選擇不同選項,隨后即可針對進程執行各種操作
Windows(窗口)子菜單:如果進程在桌面上顯示了可見窗口,即可使用Windows子菜單將窗口置于前端、還原、最小化、最大化,或直接關閉。如果進程不包含可見窗口,Windows子菜單將不可用
Set Affinity(設置相關性):在多CPU系統中可以為進程設置處理器相關性,這樣就可以只使用我們指定的一個或多個CPU執行該進程的線程。如果有失控的進程耗費了大量CPU,為了對其進行排錯必須繼續運行但希望對進程進行限制,此時可以使用 該功能。我們可以使用Set Affinity限制進程臨時只能在一個內核中運行,這樣既可釋放其他CPU,確保系統依然可用。
Set Priority(設置優先級):查看或設置進程的基本調度優先級
Kill Process(終止進程 ):選擇【Kill Process】或單擊工具欄上的【Kill Process】按鈕可強制終止進程。默認情況下Procexp會在終止進程前要求用戶確認,但可在【Options】菜單下反選【Confirm Kill】(確認終止)禁止確認
警告:強制終止進程會使得進程沒有機會正確關閉,進而可能導致數據丟失或系統不穩定。終止關鍵系統進程會導致Windows立刻出現藍屏死機崩潰
Kill Process Tree(終止進程樹):打開Procexp的進程樹排序模式后可以使用這個選項強制終止一個進程以及該進程的所有“后代”。如果啟用了【Confirm Kill】選項,還需要對該操作進行確認
Restart(重啟動):選擇該選項后,Procexp會終止選中的進程,并使用相同的命令行參數重新啟動相同映像
Suspend(掛起):如果希望讓進程贊數處于不活躍的狀態,以便讓網絡、CPU或磁盤等系統資源可以被其他進程使用,此時可以掛起該進程的線程,若要恢復掛起的進程,可以從進程的上下文菜單選擇【Resume】(恢復)。
Launch Depends(啟動依賴項):如果具備Dependency Walker(Depends.exe)工具,Procexp會使用所選進程的可執行映像路徑作為命令行參數啟動該工具。Depends.exe會顯示DLL的依賴情況。
Create Dump(創建轉儲)子菜單:為所選進程創建小型或完整內存轉儲,并將轉儲文件保存在自己選擇的位置
Properties(屬性):該選項可以打開所選進程的屬性對話框,其中顯示了有關該進程的大量細節信息。
定制可顯示的列:
右鍵點擊列頭行并選擇【Select Columns】(選擇列),或從【View】菜單中選擇【Select Columns】,即可選擇要顯示的列
保存顯示的數據:單擊工具欄上的【Save】(保存)圖標可將當前進程活動的快照保存為文本文件。Procexp會保存主窗口中設置顯示的所有列中包含的數據,如果打開了下方窗格,該窗格中的數據也會保存。數據會保存為制表符分隔的文本文件。如果在保存時尚未選中文件,Procexp會要求用戶選擇文件位置,并為文件使用與當前所選進程相匹配的默認文件名。要更改文件位置,請從【File】(文件)菜單選擇【Save As】(另存為)
工具欄參考:
Procexp的工具欄包含可快速執行常用功能的按鈕,
工具欄按鈕:
Save(保存):
Pefresh Now(立刻刷新)
System Information(系統信息)
Show Process Tree(顯示進程樹)
Show/Hide Lower Pane(toggle)(顯示/隱藏下方窗格(切換))
View DLLs/View Handles(toggle)(查看DLL/查看句柄(切換))
properties(屬性)
Kill Process/Close Handle(終止進程/關閉句柄)
Find Handle or DLL(查找句柄或DLL)
Find Window‘s Process(查找窗口的進程)
找出窗口對應的進程
我們可以快速找出在桌面上顯示有可見窗口的進程。在工具欄上的十字準星圖標上單擊并保持,隨后拖拽至目標窗口,這種方法可以幫助我們了解某些非預期錯誤的來源程序。
DLL和句柄
DLL視圖可列出所有動態鏈接庫和進程地址空間內映射的其他文件,Handle(句柄)視圖可列出進程打開的所有內核對象。按下Ctrl+D可打開DLL視圖,按下Ctrl+H可打開句柄視圖,按下Ctrl+L可打開或關閉下方窗格。
查找DLL和句柄
? ? ? ? ?Procexp最強大的功能之一是可以快速找出加載某個DLL或打開內核對象的進程。例如:假設要刪除一個文件夾,由于該文件夾“被其他程序打開”,Windows不允許我們刪除,但Windows并不會告訴我們具體是哪個程序。此時按下Ctrl+F打開Search(搜索)對話框,輸入要查找的DLL或對象的完整或部分名稱,隨后單繼【search】按鈕。Procexp會在自己可訪問的每個DLL路徑、句柄類型,以及句柄名稱中尋找包含所輸入字符的內容,并列出搜索到結果所對應的進程。單擊匹配項可在下方窗格將其選中,并在上方窗格中選中擁有該內容的進程。雙擊可以選擇內容并自動關閉Search對話框。
如果返回的搜索結果太多,可以單擊列頭按照該列內容對結果進行排序。
DLL視圖
DLL視圖可顯示所選進程加載的所有DLL。System Idle Process和Interrupts偽進程,以及受保護進程的DLL視圖無法顯示任何內容。Procexp需要具備管理權力才可以列出以不同用戶身份運行的進程加載的DLL,但此時無法列出System進程加載的映像。
DLL視圖的自定義
打開DLL視圖后,右鍵單擊下方窗格中的列頭并選擇【Select Columns】,隨后可打開Select Columns對話框的DLL選項卡。DLL選項卡列出了可選擇并顯示在Procexp DLL視圖中的所有DLL和映射文件的屬性。
進程詳情
Procexp主窗口中的進程列表可顯示有關系統中進程的大量信息。如果希望查看有關特定進程的進一步詳情,可以在Procexp主窗口中雙擊進程,打開其屬性對話框。Procexp會將屬性信息顯示在多個選項卡中:Image(映像)、Performance(性能)、Performance Graph(性能圖表)、Threads(線程)、TCP\IP、Security(安全)、Environment(環境)以及Strings(字符串)。如果使用管理權利運行,還可以顯示Disk(磁盤)和NetWork(網絡)選項卡,如果計算機有一個或多個GPU,還將顯示GPU Graph(GPU圖形)選項卡。
Image選項卡
Image(映像選項卡),可顯示進程生命周期大部分情況下保持靜態的信息,包括從可執行映像文件的圖標和版本資源中收集的信息,映像文件的完整路徑,用于啟動該進程的命令行,其自動啟動位置,運行該進程使用的用戶賬戶,有關進程何時啟動的信息,以及x64版本Windows中該進程是32位或64位。
單擊【Kill Process】按鈕可強制終止該進程。默認情況下,當我們終止進程之前Procexp會進行確認。如果需要禁止確認,可在【Options】菜單下反選【Confirm Kill】選項。
警告:強制終止進程會使得進程無法正確關閉,進而可能導致數據丟失或影響系統穩定性。此外如果要終止的是類似Csrss.exe這種關鍵的系統進程,Procexp不會顯示額外的警告。終止關鍵系統進程會導致Windows立刻藍屏死機崩潰。
Performance選項卡
Performance(性能)選項卡,可顯示有關CPU用量、虛擬內存、物理內存(工作集)、I/O、內核對象句柄數、窗口管理器句柄數等度量值。該選項卡下的所有數據會在Procexp刷新時同步更新。
Performance Graph選項卡
Performance Graph(性能圖形)選項卡針對每一個進程顯示了類似任務管理器的性能圖標。最上方的圖標顯示了最近的CPU用量歷史,其中紅色區域代表該進程內核模式的用量,上方的綠色區域代表用戶模式的用量。注意,該圖標并不能區分顯示不同CPU的用量。如果在雙核系統中進程使用了其中一個CPU100%的時間,但另一個CPU完全沒有使用,此時圖標將顯示為50%的用量。
第二個圖標顯示了進程已提交專用字節數的最近歷史。該圖標數值持續增加可能意味著內存泄漏
第三個圖表代表進程的文件和設置I/O吞吐量歷史記錄,其中淺藍色線條代表兩次刷新之間的I/O總流量,粉紅線條代表寫入操作的流量
用Procexp取代任務管理器
由于Procexp提供了比任務管理器更為豐富的信息,因此很多人可能會只使用Procexp而不再使用任務管理器。實際上Procexp提供了一種取代任務管理器的方法,通過【Options】菜單選擇【Replace Task Manager】(取代任務管理器)后,無論用什么方式啟動TaskMgr.exe,Windows都會轉為啟動Procexp。
通過Procexp啟動進程
在任務管理器中可通過【文件】-【運行】命令啟動新進程,Procexp也提供了【File】-【Run】命令,并在【File】菜單提供了使用提升或級后的權力運行新進程的多個選項:
(1)如果Procexp未以提升模式運行,那么Run As Administrator(以管理員身份運行)命令須先提升才能啟動新進程
(2)Run As Limited User(以受限用戶身份運行)命令可以更少的權利啟動新進程,運行新進程使用的令牌中將取消大部分特權,其高級組將被標記為Deny-Only(僅拒絕)如果Procexp具備管理權力,那么新進程的權利將大致等同于使用同一個用戶賬戶以標準用戶身份運行時所獲得的權利
其他功能:
關機選項
可以通過【File】-【Shutdown】子菜單注銷、關閉、鎖定或重啟動計算機。如果有系統支持,還會列出Hibernate(休眠)和Stand By(待機)的選項。
恢復Procexp的默認值
Procexp會將自己的所有配置信息存儲在“HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer”注冊表鍵值下。因此將Procexp的配置恢復為默認值最簡單的方法是關閉Procexp,刪除該注冊表鍵,然后重新啟動Procexp
鍵盤快捷鍵參考:
| 按鍵組合 | 描述 |
| Ctrl+A | 將顯示的數據保存為新文件(文件-另存為) |
| Ctrl+C | 復制主窗口或底部窗格當前行的內容 |
| Ctrl+D | 顯示DLL視圖 |
| Ctrl+H | 顯示句柄視圖 |
| Ctrl+F | 查找句柄或DLL |
| Ctrl+I | 顯示系統信息對話框 |
| Ctrl+L | 顯示/隱藏底部窗格 |
| Ctrl+M | 在線搜索 |
| Ctrl+R | 啟動新進程(文件-運行) |
| Ctrl+S | 將顯示的數據保存為新文件(文件-另存為) |
| Ctrl+T | 以樹形圖形式顯示進程列表(查看-顯示進程樹) |
| Ctrl+1,Ctrl+2等 | 加載第一、第二個列集,以此類推 |
| 空格鍵 | 暫停/恢復自動更新 |
| Del | 終止所選進程 |
| Shift+Del | 終止進程樹-所選進程及其后代 |
| F1 | 顯示幫助 |
| F5 | 立刻刷新-更新所顯示的數據 |
?
總結
以上是生活随笔為你收集整理的Process Explorer工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设置centos6 yum源为光盘
- 下一篇: 任务管理器启动资源管理器