PsExec v2.43

作者:Mark Russinovich

發佈日期:2023 年 4 月 11 日

Download下載 PsTools(5 MB)

簡介

Telnet 和遠端控制程式之類的公用程式,例如 Symantec 的 PC Anywhere,可讓您在遠端系統上執行程式,但設定並要求您在想要存取的遠端系統上安裝用戶端軟體可能會有困難。 PsExec 是一種輕量型 telnet 替代方案,可讓您在其他系統上執行處理程序,使用主控台應用程式的完整互動功能完成,而不需要手動安裝用戶端軟體。 PsExec 最強大的用途包括在遠端系統上啟動互動式命令提示字元,以及遠端啟用 IpConfig 等工具 (無法以其他方式顯示遠端系統的相關資訊)。

注意:有些防毒掃描器會回報一或多個工具感染了「遠端系統管理員」病毒。 沒有任何 PsTools 包含病毒,但它們已被病毒利用,這就是為何會觸發病毒通知的原因。

安裝

只要將 PsExec 複製到可執行檔路徑。 輸入 "psexec" 會顯示其使用語法。

使用 PsExec

請參閱 2004 年 7 月期的 Windows IT 專業人員雜誌 (英文),以取得 Mark 的文章,其中說明 PsExec 的進階使用方式。

使用方式:

psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
參數 描述
-a 以逗號分隔可以執行應用程式所在的處理程序,其中 1 是編號最低的 CPU。 例如,若要在 CPU 2 和 CPU 4 上執行應用程式,請輸入:"-a 2,4"
-c 將指定的可執行檔複製到遠端系統以執行。 如果您省略此選項,應用程式必須位於遠端系統上的系統路徑中。
-d 不要等待處理程序終止 (非互動式)。
-e 不要載入指定的帳戶設定檔。
-f 複製指定的程式,即使檔案已存在於遠端系統上亦然。
-i 執行程式,使其與遠端系統上指定工作階段的桌面互動。 如果未指定任何工作階段,處理程序就會在主控台工作階段中執行。 嘗試以互動方式執行主控台應用程式時,此旗標為必要 (使用重新導向的標準 IO)。
-h 如果目標系統是 Vista 或更新版本,則會使用帳戶提升權限的權杖執行處理程序 (如果有)。
-l 以有限的使用者身分執行處理程序 (移除系統管理員群組,並僅允許指派給使用者群組的權限)。 在 Windows Vista 上,處理程序會以低完整性執行。
-n 指定連線到遠端電腦的逾時 (以秒為單位)。
-p 指定使用者名稱的選擇性密碼。 如果您省略此項目,則會提示您輸入隱藏的密碼。
-r 指定要建立或互動的遠端服務的名稱。
-s 在系統帳戶中執行遠端處理程序。
-u 指定選用的使用者名稱以登入遠端電腦。
-v 只有當指定的檔案版本號碼高於遠端系統上的版本號碼或更新時,才複製指定的檔案。
-w 設定處理程序的工作目錄 (相對於遠端電腦)。
-x 在 Winlogon 安全桌面上顯示 UI (僅限本機系統)。
-priority 指定 -low、-belownormal、-abovenormal、-high 或 -realtime,以不同的優先順序執行處理程序。 使用 -background 在 Vista 上以低記憶體和 I/O 優先順序執行。
computer 指示 PsExec 在指定的一或多部遠端電腦上執行應用程式。 如果您省略電腦名稱,PsExec 會在本機系統上執行應用程式,而且如果您指定萬用字元 (\\*),PsExec 會在目前網域中的所有電腦上執行命令。
@file PsExec 會在檔案中列出的每部電腦上執行命令。
cmd 要執行的應用程式名稱。
arguments 要傳遞的引數 (請注意,檔案路徑必須是目標系統上的絕對路徑)。
-accepteula 此旗標會隱藏授權對話方塊的顯示。
-nobanner 此旗標會隱藏啟動橫幅和著作權訊息。

您可以使用引號括住名稱中有空格的應用程式,例如

psexec \\marklap "c:\\long name app.exe"

只有在按下 Enter 鍵時,輸入才會傳遞至遠端系統。 輸入 Ctrl-C 會終止遠端處理程序。

如果您省略使用者名稱,處理程序將會在遠端系統上的帳戶內容中執行,但將無法存取網路資源 (因為它正在模擬)。 如果遠端處理程序需要存取網路資源或在不同的帳戶中執行,請在 Domain\User 語法中指定有效的使用者名稱。 請注意,密碼和命令會在傳輸至遠端系統時加密。

PsExec 傳回的錯誤碼專為您執行的應用程式特有,而不是 PsExec。

範例

我撰寫的本文會描述 PsExec 的運作方式,並提供如何使用它的秘訣:

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

psexec -i \\marklap cmd

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

psexec -i \\marklap ipconfig /all

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

psexec -i \\marklap -c test.exe

指定已在遠端系統上安裝的程式的完整路徑 (如果不在系統路徑上):

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

在系統帳戶中以互動方式執行 Regedit,以檢視 SAM 和安全性金鑰的內容:

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

若要以有限使用者權限執行 Internet Explorer,請使用此命令:

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

Download下載 PsTools(5 MB)

PSTools

PsExec 是成長中 Sysinternals 命令列工具套件的一部分,可協助管理名為 PsTools 的本機和遠端系統。

執行於:

  • 用戶端:Windows 8.1 及更高版本。
  • 伺服器:Windows Server 2012 及更高版本。