Sysinternals 高手沒閒理會的技巧

(This legacy article is Chinese-only. Translate it to English.)

Windows Sysinternals,2006 年被 Microsoft 收購的這家公司相信所有深研 Windows 技術的人都必聽過;由 Mark Russinovich 和 Bryce Cogswell 高人們製作的工具由 NT 年代到現在 Windows 7 都一直更新並繼續深深影響我們。這篇不談那些高深東西,而想介紹 3 個另類技巧。

1. 極速執行 Sysinternals 工具之法

進階用者相信對 procexp (Process Explorer)、procmon (Process Monitor) 等這些常用工具的檔名都不陌生。現在試試在 [開始]、[執行] (XP) 或 [開始搜尋列] (Vista、7) 執行他們吧!等一下,你的電腦沒有那些工具嗎?那就對了,那小弟就可以展示 Mark Russinovich 先生常在他的講座中運用的一個技巧。

01-live-sysinternals-com

不用事先下載和解壓,直接輸入 https://live.sysinternals.com/procmon.exe 就可以執行 Process Monitor 或其他工具。不懂得使用嗎?大部份圖像介面工具還提供說明書,將 .exe 改為 .chm 或 .hlp 看看!

那是說 https://live.sysinternals.com/ 就是一支在雲端的 USB 隨身碟,無需帶備,只要連接互聯網就能使用 Sysinternals Suite 內的工具。

其他好處:

  • 即時下載有時比在客戶電腦辨認新裝置(USB 隨身碟)所需的時間更少
  • 即使客戶的電腦中毒,也不怕感染自己的 USB 隨身碟
  • 確保工具版本肯定是最更新

另一家著名免費視窗工具開發商 NirSoft 亦有類似服務:https://www.nirsoft.net/panel/

2. 我們不要再見,使用者授權合約!

有沒有試過對 Sysinternals 工具的使用者授權合約 (EULA) 感到懊惱?懊惱除了因為見得太多,就是當以 Sysinternals PsExec (或 Telnet、OpenSSH 視窗版) 遙控命令行方式執行一些未執行過的 Sysinternals 工具,那時候才發現是不可能的任務,因為每個 Sysinternals 工具首次執行時都會彈出 EULA,要以滑鼠按 [接受] 後才繼續執行。

02-sysinternals-eula
遠端命令行介面下不能彈出 EULA 提示,作業無法繼續

這裡提供一個解決方法。原來當按了 [同意] 後每個 Sysinternals 工具都會在系統登錄留下不同機碼,於是一位 Sysinternals 討論區成員收集了所有 Sysinternals 工具所留下的機碼並製作成指令檔,一執行就等於自動接受所有工具的 EULA 了。

03-sysinternals-eula-registry-key
執行後就會在「HKCU\Software\Sysinternals\」下產生這堆機碼

小弟將它稍作修改,將新的 Sysinternals 工具如 Disk2Vhd 都加進去,成為以下檔案。

下載連結[1][2]

使用方法:解壓後執行「syseula.cmd」即可。

04-sysinternals-tools-txt
若日後 Sysinternals 推出新工具,可自行新增到「sysinternals_tools.txt」文檔

提示:下文介紹的 SSIBuild 工具亦包括自動接受 EULA 這功能(在 [所有程式] → [Sysinternals Suite] → [EULA],見下圖),因此如打算安裝 SSIBuild 到系統,可直接利用它的內建功能來達成而無需用以上方法。

3. Sysinternals 工具也可以「安裝」?

Sysinternals 工具有圖像介面 (GUI),也有命令行介面的 (CLI),其中 Sysinternals Suite 是個包括他們所有出品的套裝,可是這套裝沒有安裝器,不能安裝。這裡要介紹的 SSIBuild 就是要補完這個不足。

05-ssibuild
以 SSIBuild 安裝 Sysinternals Suite 後的「開始」程式功能表

下載SSIBuild | Sysinternals Suite

SSIBuild 全寫是 Sysinternals Suite Installer Builder,由無人值守技術討論區 MSFN 的會員 DarkShadows 製作。使用方法極之簡單,只要將下載回來的 SysinternalsSuite.zip 放到 SSIBuild.exe 旁,執行 SSIBuild.exe,結束時按 [Y] 以刪除安裝時產生的暫存檔,然後一個無人值守 SysinternalsSuite.exe 安裝器便會製作出來。

06-ssibuild-installer

SysinternalsSuite.exe 的安裝過程完全無需用者操作 (無人值守)。安裝後,開始程式選單便會有分門別類的工具捷徑,就連非圖像介面的都有,據作者說命令行工具會先以 cmd /k 方式展示說明書 (cmd /k 的用意是在執行說明書命令後仍保留 [命令提示字元] 視窗供用者使用)。SSIBuild 另外還將安裝資料夾 "Program Files\Sysinternals Suite" 加入 Path 環境變數 (提示:這功能在 XP 要重新開機後才生效,大概是因為 Vista 開始才內置 Setx 工具吧)。最後,程式會在 [控制台] [新增移除程式] 內產生相關解除安裝選項。

07-run-sysinternals-tool-path
因為加入了 Path 環境變數,進階用者就能這樣簡單的執行工具
08-sysinternals-suite-installer-inf

而為了保持更新,SSIBuild 作者也釋出適合 Windows Update Downloader (Windows Update 檔案下載工具) 用的更新清單 (需成為為 MSFN 會員才能下載),以方便更新 SSIBuild 和 Sysinternals Suite。當然我們也可以使用其它下載管理工具如 Ketarin 自動檢查更新。

小結

其實市面不只一款 Sysinternals Suite 安裝器,這款的優勝之處是作者一直都勤於更新。另一款來自 Microsoft 員工 Michael Murgolo 的 INF 安裝器「Sysinternals Suite Installer」(右圖)當配合新版 Sysinternal Suite 安裝時會產生錯誤,因為新版去掉了一些老舊程式,如 NewSID, FileMon, RegMon,也增添了新的程式,如 Disk2VHD。(可幸是最近作者終於把它更新了!) 不過這款的功能比 SSIBuild 少,例如不會加入 Path。

(待續)


歡迎用以下方式儲存或分享本文:


Comments

  1. 谢谢博主分享以上不为众知的小技巧,很有趣

    ReplyDelete
  2. 匿名寫道:

    > 谢谢博主分享以上不为众知的小技巧,很有趣

    很感謝閣下留言。專心工作不時會想到一些怪主意,有時間定會努力寫出來。

    ReplyDelete

Post a Comment