PsExec v1.94

作者:Mark Russinovich

發佈日期: 2008 年 1 月 4 日


簡介

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

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

安裝

只要將 PsExec 複製到可執行路徑,然後輸入 "psexec",就會顯示它的使用語法。

PsExec 適用於 Windows Server 2008、Vista、NT 4.0、Win2K、Windows XP 和 Server 2003 (含 x64 版本的 Windows)。

使用方式

請參閱 Windows IT Pro Magazine 2004 年 7 月版 Mark 的文章,內容涵蓋 PsExec 的進階使用方法。

使用方法: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]

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 的替代品。

範例

我所撰寫的這篇文章說明執行 PsExec 的方式,並提供它的使用的秘訣:

 

下列命令會在 \\marklap 啟動互動式命令提示:

psexec \\marklap cmd

這個命令使用 /all 參數來執行遠端系統上的 IpConfig,並在本機顯示產生的輸出:

psexec \\marklap ipconfig /all

這個命令將程式 test.exe 複製到遠端系統,並以互動方式執行:

psexec \\marklap -c test.exe

如果已安裝在遠端系統上的程式不是位於系統路徑,則指定該程式的完整路徑:

psexec \\marklap c:\bin\test.exe

在 System 帳戶中以互動方式執行 Regedit,以檢視 SAM 和 SECURITY 機碼的內容:

psexec -i -d -s c:\windows\regedit.exe

若要使用限制使用者的權限執行 Internet Explorer,請使用這個命令:

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

PsTools

PsExec 是 Sysinternals 命令列工具擴充套件的一部分,可協助本機和遠端 Windows NT/2K 系統的系統管理,此套件的名稱為 PsTool。

下載 PsTools (1 MB)

 

回到頁首