微軟開發的工具

微軟自身常常有一些很好用的工具們,開一篇獨立記錄。
主要來自 Windows Sysinternals 的介紹網站, 再多補充一些自已有在用的。

Sysinternals

Troubleshooting with the Windows Sysinternals Tools 相關工具書

以下介紹轉自 https://www.sysgeek.cn/what-is-sysinternals-tools/

SysInternals 工具集最早由大牛 Mark Russinovich 開發,它是一套完全免費的 Windows 工具套件,其官方網站為 www.SysInternals.com 。由於已經於 2006 年被微軟收購,Mark 也已經出任 Aazure CTO,訪問網址時會直接跳轉到 Technet 的 SysInternals 主頁。

說到 SysInternals 工具集,在 ITPro 當中應該說是無人不知,該工具集在平常的維護和排錯工作中經常都會用到,微軟的 Troubleshooting 團隊也會經常使用該工具集中的工具。正是由於其強大的功能和便利性,被微軟收購也不足為奇了。SysInternals 工具集的工具有很多,大概涵蓋了如下的幾個類型:

  • 文件和磁盤工具
  • 網絡工具
  • 進程工具
  • 安全工具
  • 系統信息工具
  • 其它類型工具

不知道大家是否記得有一次差點讓索尼身敗名裂的事件:Sony 試圖將 rootkit 嵌入其音樂 CD,最早檢測到該問題的就是 Sysinternals 工具。該次事件之後 Sysinternals 工具便名聲大振,隨後便被微軟收購。

Process Explorer

process/thread viewer

官方
更強大的工作管理員,可以查看程式樹、Dll 載入狀況、不明程式的 PID 、該程式開啟的檔案、開啟方式、註冊的機碼等。
雖說有取代系統原先工作管理員的功能,但在 win10 無法正常的使用此功能。

也可使用 VirusTotal.com 掃描檢查有無問題程式。
開啟方法:

Options →VirusTotal.com→Check VirusTotal.com

另外也要設定 symbols 路徑1

1
2
Options→Configure Symbols 1
srv”c:\symbols\publics*https://msdl.microsoft.com/download/symbols

Process Monitor

file/registry/process/thread tracing

官網
即時顯示監控 registry 、文件和線程活動
Process Monitor 基本操作教學

Autoruns

顯示所有自動運行的程式

官網
可開啟整合的 VirusTotal.com 掃描功能快速檢查有無問題程式。
開啟方法:

Options →Scan Options→Check VirusTotal.com

SigCheck

顯示檔案的版本訊息

官網
除了檢查檔案的數位簽章外,加上-v可一並至 virustotal.com 檢查安全性

TcpView

顯示 TCP/IP endpoints

官網
類似netstat /b的圖形化工具,但其好處是可以做篩選或直接關閉連線。

Whois

查詢域名或 IP 的註冊資詢

官網

Zoomit

可隨時放大、縮小、筆記螢幕

官方

Pstools

多數功具要配合 AD 才能有效運用,主要是網管人員在不使用遠端控制軟體下對其它使用者的控制。

官網, 可參考使用 PsTools 工具執行本地 / 遠程 PC 管理任

Psping

execute processes remotely or in the system account

官網

除了 icmp ping 外,還可測 TCP ping、TCP or UDP 延遲、網路頻寬等。
來源:免費 IP,ICMP,TCP 及頻寬測試的好工具 PSPING
查詢語法法:

psping -? [i|t|l|b]

參數 說明
-? I  ICMP ping 的用法。
-? T  TCP ping 的用法。
-? L  延隔時間測試的用法。
-? B  頻寬測試的用法。

ICMP PING 語法

psping [[-6] | [-4]] [-h [buckets]] [-i <interval>] [-l <requestsize> [-q] [n-t|-<count>] [-w <count>] <destination>

例:

psping -h 5 -w 2 168.95.1.1
參數 說明
-h 列出統計圖(每 0.01ms 一個值,預設顯示數為 20)。
-i 以秒為單位的時間間隔(預設 1 秒)。指定為 0 為快速 ping。
-l 請求大小。
-n Ping 的次數。(預設 5 次)
-q 不輸出 ping 命令的過程。
-t Ping 不停止執行,直到用 Ctrl + C 停止。輸入 Ctrl + Break 可暫時停止。
-w 執行指定數目的預熱 ping(預設為 1)。
-4 使用 IPv4。
-6 使用 IPv6。

使用高速 ping 來測試,可使用 - q 和 - i 0 的組合。

比較特別的是-w參數,會送出指定次數的 ping 但不列入統計,做為暖身使用。

TCP PING 語法

psping [[-6]|[-4]] [-h [buckets]] [-i <interval>] [-l <requestsize> [-q] [-t|-n <count>] [-w <count>] <destination:destport>

從語法來看,與 ICMP 的語法只差最後的目標是帶有埠(port)號的。

例:

psping -h 5 -w 2 www.google.com:80

TCP 延遲測試語法

server: psping [[-6]|[-4]] <-s source:sourceport>

client: psping [[-6]|[-4]] [-h [buckets]] [-r] <-l requestsize>] <-n count> [-w <count>] <destination:destport>

TCP 延遲是有「明確目標」的測試,從語法上可以看得出來,需要有一台 Server 一台 Client,兩台主機直接進行對測。Server 可以拿來進行延遲及頻寬測試,直到你按下 Ctrl + C 為止。

例:

server: psping -s 192.168.3.116:8080
client: psping -h5 -n10 -w 2 192.168.3.116:8080

TCP 頻寬測試語法

server: psping [[-6]|[-4]] <-s source:sourceport>

client: psping [[-6]|[-4]] -b [-h [buckets]] [-r] <-l requestsize> <-n count> [-i <outstanding>] [-w <count>] <destination:destport>
參數 說明
-i 測試數量。(預設最小 16 和 2 倍 CPU 核心數)
-b 頻寬測試
-r 從 server 接收封包,而不是由 client 發出封包。
-w 頻寬測試裡的 - w 預設值預設為 2 倍 CPU 核心數。

要使用頻寬測試,在 client 必須多加一個 - b 的參數。另外,-r 是反方向傳送的意思,由原本的 client 向 server 發送測試,改由 server 向 client 發送測試。

例:

server: psping -s 192.168.3.116:8080
client: psping -b -l 8192 -n 100000 -h 10 10 192.168.3.116:8080
client: psping -b -r -l 8192 -n 100000 -h 10 10 192.168.3.116:8080

PsExec

execute processes remotely or in the system account

文章作者
用法

psexec [\\computer[,computer2[,...] | @file] [-u user [-p psswd]]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,... ] cmd [arguments]
參數 說明
-c 將指定的程式複製到遠端系統以執行。如果省略這個選項,則應用程式必須在遠端系統上的系統路徑中。
-d 請勿等候應用程式終止。僅使用這個非互動式應用程式的選項。
-f 即使檔案已經存在於遠端系統內,還是將指定的程式複製到遠端系統。
-i 執行此程式,才能夠讓它與遠端系統中指定的工作階段的桌上型電腦互動。如果沒有指定的工作階段,則處理序在主控台工作階段中執行。
-l 以限制使用者的身份執行處理序(刪除系統管理員群組,且只允許使用者群組指派的權限)。在 Windows Vista 中,使用低整合性執行處理序。
-p 指定選擇性使用者名稱密碼。如果省略這個動作,則會出現輸入隱藏密碼的提示。
-u 指定選擇性使用者名稱以登入遠端電腦。
-w 設定處理序的工作目錄(相對於遠端電腦)。
@file 導入 PsExec 以執行每個電腦(指定的文字檔中所列示)的命令。

範例:

執行遠端電腦上的 IE

psexec -u domain\user -p password \\192.168.0.24 -d -l -i "E:\Program Files\Internet Explorer\iexplore.exe"

開啟遠端電腦上的檔案 (shutdown.bat)

psexec -u domain\user -p password \\192.168.0.24 -d -w c:\sch -i notepad shutdown.bat

顯示遠端電腦的連線狀態(會跳出輸入密碼的提示)

psexec -u domain\user \\192.168.0.24  netstat -na

啟動遠端電腦上的互動式命令提示(會跳出輸入密碼的提示,user 要為 Administrators 群組成員)

psexec -u domain\user \\192.168.0.24 cmd

複製檔案 (cpuz.exe) 到遠端電腦上(會跳出輸入密碼的提示)
psexec -u domain\user \192.168.0.24 -c cpuz.exe

PsKill

關閉本機或遠端電腦腦的程式

官方

pskill [-] [-t] [\\computer [-u username] [-p password]] <process name | process id>

其他

Kernrate

記錄 CPU 使用率

官網,參考 2
直接執行後就會開始記錄 CPU 使用率,跑一段時間後用 ctrl-c 就會停止執行並印出它所記錄的 CPU 使用率,可方便測試時間段內軟體的 CPU 使用率
官網只有 x86 和 IA64 ,不能在 x64 運行,個人已將其從 windows DDK 中提取出

Device Console

命令列版的裝置管理員。

官網作者

基本的指令操作:

先找你要開關的 Device 的 HWID(我是存到一個文字檔慢慢找):

devcon hwids * > D:\hwids.txt

使用底下指令去 disable , 記得在 HW ID 前面加 @

devcon /r disable “@ACPI\DELL0812\3&31FF937C&0”

使用底下指令去 enable, 記得在 HW ID 前面加 @,然後 HWID 要用 “ “ 包起來.

devcon /r enable “@ACPI\DELL0812\3&31FF937C&0”

使用底下指令去重新 scan hardware

devcon rescan

使用底下指令可以做重新開機動作

devcon reboot

停用網卡範例

開啟命令提示字元,輸入:DevCon find PCI*
記下您要停用的網路卡的識別碼,例如底下

PCI\VEN_14E4&DEV_4319&SUBSYS_00051028&REV_02\4&2FA23535&0&18F0

您只要記住 DEV_4319
輸入:

DevCon disable DEV_4319

按下 Enter, 會出現底下訊息

PCI\VEN_14E4&DEV_4319&SUBSYS_00051028&REV_02\4&2FA23535&0&18F0: Disabled
1 device(s) disabled.

啟用則輸入:

DevCon enable DEV_4319

按下 Enter, 會出現底下訊息

PCI\VEN_14E4&DEV_4319&SUBSYS_00051028&REV_02\4&2FA23535&0&18F0: Enabled
1 device(s) enabled.

WinDbg

Debugging Tools for Windows

官網
會獨立一篇,先參照 Windbg 指令與分析之教學筆記藍屏分析 Debugging Tools for Windows 10 - 讓你從此看到藍屏不再害怕

Mouse Without Borders

官方
可以讓多台電腦在可連通的網路環境下共用滑鼠、剪貼簿等,常用情境是自已的筆電帶到公司時。
有時會失效就是了,可能和我用的網路環境有關。

------ THE END ------