PsTools遠端執行Windows命令
• 本篇文章是基於pstools 1.6版本。pstools是sysinternals出的一個功能強大的nt/2k遠端管理工具包。
它的主頁為http://www.sysinternals.com/
下載地址為http://www.sysinternals.com/files/Pstools.zip
(1)psexec
psexec是一個遠端執行工具,你可以像使用telnet一樣使用它。
它的使用格式為:
psexec \\遠端機器ip [-u username [-p password]] [-c [-f]] [-i][-d] program [arguments]
它的引數有:
-u後面跟使用者名稱 -p後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
-c <[路徑]檔名>:拷貝檔案到遠端機器並執行(注意:執行結束後文件會自動刪除)
-d 不等待程式執行完就返回,(比如要讓遠端機器執行tftp服務端的時候使用,不然psexec命令會一直等待tftp程式結束才會返回)
-i 在遠端機器上執行一個名為psexesvc程序,(到底什麼用弄不明白)
假設我在遠端機器ip有一個賬號,賬號名是:abc 密碼是:123
比如想要用telnet一樣在遠端系統上執行命令可以打:
psexec \\遠端機器ip -u abc -p 123 cmd
如果想要遠端機器執行本地c:\srm.exe檔案可以打:
psexec \\遠端機器ip -u abc -p 123 -c c:\srm.exe
如果想要讓遠端機器執行本地上tftp服務端,(假設tftp服務端在本地c:\tftp32.exe),可以打:
psexec \\遠端機器ip -u abc -p 123 -c c:\tftp32.exe -d
(後面例子不再重複-u和-p的用法)
(2)psservice
psservice是一個服務管理程式。
它的使用格式為:
psservice [\\遠端機器ip [-u username] [-p password]]
它的引數只有:
-u 後面跟使用者名稱 -p後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
它的command有:
query [服務名]:顯示某一服務的狀態,如不填服務名則顯示所有服務的狀態。
config <服務名>:顯示某一服務的配置。
start <服務名>:啟動某一服務。
stop <服務名>:停止某一服務。
testart <服務名>:停止某一服務並重新啟動它。
pause <服務名>:暫停某一服務。
cont <服務名>:恢復暫停的服務。
depend <服務名>:顯示某一服務依存關係。
find <服務名>:在網路種搜尋指定的服務。
比如你想檢視在遠端機器上的telnet服務的狀態可以打:
psservice \\遠端機器ip query tlntsvr (tlntsvr為telnet服務的服務名)
比如你檢視遠端機器上的telnet服務的配置可以打:
psservice \\遠端機器ip config tlntsvr
比如你想啟動遠端機器上的telnet服務可以打:
psservice \\遠端機器ip start tlntsvr
其他用法以此類推。
(3)pssuspend
pssuspend是一個暫時停止程序的軟體
它的使用格式為:
pssuspend [-r] [\\遠端機器ip [-u username] [-p password]] <PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
它有三個引數:
-u:後面跟使用者名稱 -p:後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
-r:恢復程序。
比如要暫時停止一個pid號為999,名稱為srm.exe的程序可以打:
pssuspend \\遠端機器ip 999 或 pssuspend \\遠端機器ip srm
如果想要恢復它就可以打pssuspend -r \\遠端機器ip 999 或 pssuspend -r \\遠端機器ip srm
(4)psinfo
psinfo是一個蒐集機器軟硬體資訊的工具,它可以獲得作業系統資訊,硬體資訊和軟體資訊。
它的使用格式為:
psinfo [-h] [-s] [-d] [-c] [\\遠端機器ip [-u username [-p password]]]
它的引數有:
-u:後面跟使用者名稱 -p:後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
-h:是顯示它安裝了哪些補丁包
-s:是顯示它裝了哪些軟體
-d:是顯示磁碟資訊。
比如我只想看遠端機器的軟硬體資訊和只用打:
psinfo \\遠端機器ip
假如我還想看看它裝了哪些補丁包可以打
psinfo -h \\遠端機器ip
假如我還想看看它磁碟資訊可以打:
psinfo -d \\遠端機器ip
如果我想看它裝了哪些軟體可以打:
psinfo -s \\遠端機器ip
簡單吧.
(5)pslist
pslist是一個檢視程序的程式。
它的使用格式為:
pslist [-d] [-m] [-x][-t][-s [n] [-r n] [\\遠端機器ip [-u username] [-p password]] [name | pid]
它的引數有:
-u:後面跟使用者名稱 -p:後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
-s:是使用工作管理員模式實時檢視程序,可以按ESC鍵退出。
-r <秒數>:是和-s連用的一個引數,它用來指定工作管理員模式是的重新整理間隔。(預設的重新整理間隔為1秒)
-d:示各個程序的cpu使用資訊。
-m:顯示各個程序的儲存器使用資訊。
-x:非常詳細顯示程序的所有資訊。
-t:以樹型方式顯示程序。
比如要檢視遠端機器ip上的程序的cpu使用資訊可以打:
pslist -d \\遠端機器ip
比如要檢視一個pid號為999,名稱為srm.exe程序的儲存器使用資訊可以打:
pslist -m \\遠端機器ip 999 或 pslist -m \\遠端機器ip srm
比如要以工作管理員模式實時檢視61.12.23.4上程序情況,並且重新整理間隔為3秒可以打:
pslist -s -n 3 \\遠端機器ip
(6)psuptime
psuptime是一個瞭解遠端機器運行了多久的命令。
使用它只需要打:psuptime \\遠端機器ip
(7)psshutdown
psshutdown是一個遠端關機命令。
它的使用格式為:
psshutdown [[-s | -r | -k [-t nn][-m "訊息"][-f]] -a | -l | -o] [\\遠端機器ip]
它的引數有:
-a:取消以前執行的關機指令。
-t:離關機還有多少秒。(預設是20秒)
-s:關閉機器。
-m:是要顯示的資訊。
-f:是關機是不儲存執行的程式。
-r:表示重啟。
-l:表示鎖定電腦。
-o:表示登出使用者。
比如我想讓遠端機器30秒後關閉並顯示(要關機了,請儲存檔案)則打:
psshutdown -t 30 -s -m "要關機了,請儲存檔案" \\遠端機器ip
如果是要重起的話打:
psshutdown -t 30 -m "要關機了,請儲存檔案" -r \\遠端機器ip
如果要取消剛才的指令可以打:
psshutdown -a \\遠端機器ip
其他引數以此類推。
(8)psfile
psfile是一個顯示機器上的會話和有什麼檔案被網路中的使用者的開啟的命令。
它的使用格式為:
psfile [\\遠端機器ip [-u Username [-p Password]]] [[Id | path] [-c]]
它的引數有:
-u 後面跟使用者名稱 -p後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
-c:關閉會話或檔案
比如我想看看遠端機器上的會話和被遠端使用者開啟的檔案可以打:
psfile \\遠端機器ip
接著就會顯示
[33] C:\WINNT
User: ADMINISTRATOR
Locks: 0
Access: Read
[63] \PIPE\srvsvc
User: ADMINISTRATOR
Locks: 0
Access: Read Write
接著我想關閉id為33,路徑為c:\winnt的這個會話可以打
psfile \\遠端機器ip 33 -c 或 psfile \\遠端機器ip c:\winnt -c
(9)psloggedon
psloggedon是一個顯示目前誰登陸的機器的命令。
它的引數只有:
-l只顯示本地登陸使用者而不顯示其它的網路登陸使用者
-x不顯示登陸時間
比如說要顯示遠端機器現在登陸的使用者可以打:
psloggedon \\遠端機器ip
(10)psgetsid
psgetsid是一個遠端獲取賬號sid資訊的工具。
它的使用格式為:
psgetsid [\\遠端機器ip [-u username [-p password]]] [account]
它的引數有
-u 後面跟使用者名稱 -p後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。(如果沒有-p引數,則輸入命令後會要求你輸入密碼)
比如要看遠端機器上賬號名為abc的sid資訊可以打:
psgetsid \\遠端機器ip abc
(11)pskill
pskill是一個殺除程序的程式。
它的使用格式為:
pskill [\\遠端機器ip [-u username] [-p password]] <PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
比如要殺除一個pid號為999,名稱為srm.exe的程序可以打:
pskill \\遠端機器ip 999 或 pskill \\遠端機器ip srm
(12)psloglist
psloglist
psloglist是一個檢視系統事件記錄的程式。
它的使用格式為:
psloglist [\\遠端機器ip [-u username [-p password]]] [-s [-t delimiter]] [-n # | -d #][-c][-x][-r][-a mm/dd/yy][-b mm/dd/yy][-f filter] [-l event log file]
它的引數有:
-u 後面跟使用者名稱 -p後面是跟密碼的,如果建立ipc連線後這兩個引數則不需要。
-c:顯示事件之後清理事件記錄
-l <事件記錄檔名>:用於檢視事件記錄檔案
-n :只顯示最近的n條系統事件記錄。
-d :只顯示n天以前的系統事件記錄
-a mm/dd/yy:顯示mm/dd/yy以後的系統事件記錄
-b mm/dd/yy:顯示mm/dd/yy以前的系統事件記錄
-f <事件型別>:只顯示指定的事件型別的系統事件記錄。
-x:顯示事件資料程式碼
-r:從舊到新排列(如不加則預設是從新到舊排列)
-s:以一個事件為一行的格式顯示,中間預設以逗號格開各個資訊。
-t <字元>:這個引數和-s連用,以來改變-s中預設的逗號。
如果我想看遠端機器的系統事件記錄只用打:
psloglist \\遠端機器ip 123
比如我想看最近的10條error型別的記錄可以打:
psloglist \\遠端機器ip -n 10 -f error</PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID></PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
<PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID><PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
</PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID></PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
<PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID><PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
</PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID></PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>
<PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID><PROCESS&NBSP;NAME&NBSP;|&NBSP;PROCESS&NBSP;ID>