就是愛分享
公用程式中的 Telnet 和遠端控制程式中的 Symantec PC Anywhere,都可以讓您在遠端系統上執行程式,但是設定起來很麻煩,而且您必須在要存取的遠端系統上安裝用戶端 軟體。PsExec 是一種輕量的 Telnet 替代品,讓您能夠在其他系統上執行處理程序,並且不需要手動安裝用戶端軟體,就可以使用主控台應用程式的完整互動功能。PsExec 最強大的功能包含啟動遠端系統上的互動式命令提示,還有 IpConfig 這類的遠端啟用工具,否則無法顯示遠端系統的相關資訊。

附註:部分掃毒程式會報告一或多個工具受到 remote admin 病毒的感染。PsTools 本身並未包含任何病毒,它們只是受到病毒利用,因此才會觸發病毒通知。

安裝
只要將 PsExec 複製到可執行路徑 (c:\windows\system32),然後輸入 "psexec",就會顯示它的使用語法。

使用方法
psexec [\\computer[,computer2[,...]| @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,...] cmd [arguments]

computer
引導 PsExec 在指定的一或多部電腦上執行應用程式。如果省略電腦名稱,則 PsExec 會在本機系統執行應用程式;如果輸入電腦名稱 "\\*",則 PsExec 會在目前網域中的所有電腦執行應用程式。

@file
引導 PsExec 在指定文字檔列出的每部電腦上執行命令。

-a
以逗號隔開可以執行應用程式的處理器,其中 CPU 的最小編號是 1。例如,若要在 CPU 2 和 CPU 4 執行應用程式,請輸入:"-a 2,4"

-c
將指定的程式複製到遠端系統以便執行。如果省略這個選項,則該應用程式必須位於遠端系統的系統路徑。

-d
不等候應用程式終止。只有針對非互動式應用程式,才需使用這個選項。

-e
不載入指定的帳戶設定檔。

-f
將指定的程式複製到遠端系統 (即使檔案已經存在於遠端系統)。

-i
執行程式,讓它可以跟遠端系統上指定之工作階段的桌面互動。如果未指定工作階段,則處理程序會在主控台工作階段中執行。

-l
以限制使用者的身分執行處理程序 (卸除 Administrators 群組,而且只允許指派給 Users 群組的權限)。在 Windows Vista 中,會使用低整合性來執行處理程序。

-n
指定連線至遠端的電腦逾時 (秒)。

-p
指定選擇性使用者名稱密碼。如果省略這個動作,則會出現輸入隱藏密碼的提示。

-s
使用 System 帳戶執行遠端處理程序。

-u
指定用來登入遠端電腦的選擇性使用者名稱。

-v
當指定的檔案具有較新的版本號碼,或是比遠端系統中的版本還要新時,才複製指定的檔案。

-w
設定處理程序的工作目錄 (相對於遠端電腦)。

-x
顯示 Winlogon 桌面的 UI (僅限本機系統)。

-priority
指定 -low、-belownormal、-abovenormal、-high 或 -realtime,依不同的優先順序來執行處理程序。使用 -background,可以在 Vista 上用很少的記憶體和較低的 I/O 優先順序來執行

program
要執行的程式名稱。

arguments
要傳遞的引數 (請注意,檔案路徑必須是目標系統上的絕對路徑)。

您可以用引號括住名稱中有空格的應用程式,例如,psexec \\marklap "c:\long name\app.exe"。只有在按下 Enter 鍵時,才會將輸入傳遞給遠端系統,而輸入 Ctrl-C 則會終止遠端處理程序。

如果您省略使用者名稱,則會使用執行 PsExec 的相同帳戶來執行遠端處理程序,但是因為遠端處理程序正在進行模擬,所以它並無法存取遠端系統上的網路資源。當您指定使用者名稱時, 就會使用指定的帳戶來執行遠端處理程序,而且會存取該帳戶可以存取的任何網路資源。請注意,密碼會以純文字形式傳輸給遠端系統。

因為 PsExec 不需要使用系統管理員身分就可以執行,所以將本機系統當做目標時,可以將目前的 PsExec 版本當成 Runas 的替代品。

範例:
c:\>psexec \\140.137.215.118 -u bar -p 1234 cmd.exe
C:\>shutdown /s
0 Responses