更新於 2024/12/17閱讀時間約 7 分鐘

PSTools 好用的遠端管理小工具

PSTools 是由作者 Mark RussinovichMicrosoft Learn 發佈的 Windows 遠端管理公用程式

https://learn.microsoft.com/zh-tw/sysinternals/downloads/pstools


PsTools 套件中包含的工具 (可以套件形式下載) 包括:

  • PsExec - 從遠端執行處理序
  • PsFile - 顯示從遠端開啟的檔案
  • PsGetSid - 顯示電腦或使用者的 SID
  • PsInfo - 列出系統相關資訊
  • PsPing - 測量網路效能
  • PsKill - 依名稱或處理序識別碼終止處理序
  • PsList - 列出處理序的詳細資訊
  • PsLoggedOn - 查看在本機登入的人員,以及透過資源分享登入的人員 (包含完整來源)
  • PsLogList - 傾印事件記錄檔記錄
  • PsPasswd - 變更帳戶密碼
  • PsService - 檢視和控制服務
  • PsShutdown - 關閉並選擇性地重新啟動電腦
  • PsSuspend - 暫停處理序
  • PsUptime - 顯示系統自上次重新開機後執行的時間長度(PsUptime 的功能已併入 PsInfo


使用前要先確認:

1.擁有遠端主機的管理者權限

例如我先在遠端主機先建立一個帳號 Test_1

C:\Windows\System32>net user Test_1 XXXXXX /add
命令已經成功完成。

再將使用者加入管理者群組

C:\Windows\System32>net localgroup administrators Test_1 /add
命令已經成功完成。

2.遠端主機有開啟檔案及印表機共用功能

開始選單→設定網路和網際網路→進階網路設定→進共用設定

然後找到檔案及印表機共用,確認它是開啟的。


PsExec 執行遠端程序

應用1:在本機執行遠端主機的cmd.exe

D:\Downloads\PSTools>psexec \\hp01 -u Test_1 -i -p XXXXXX cmd
// ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^
// 遠端電腦名稱↑ ↑遠端使用者名稱/密碼 ↑要執行的程序
// 其中 -i 是指使用者帳號要用遠端主機上的使用者帳號
// 其中 -u 是遠端電腦上的使用者帳號 -p 為該帳號對應的密碼

出現上圖的 C:\Windows\System32>

就表示你已經登入了遠端電腦,並可以使用 cmd支援的指令來控制遠端電腦

目前唯一遇到的問題是"中文"檔名(目錄名)

我們輸入的中文指令透過 psexec 傳輸過後中文會變成亂碼

造成遠端電腦系統無法理解我們的指令,這部分沒有解法

但如果我們是只要讀取檔案可以利用 net share 指令創造一個共享資料夾

net share AAA=D:/grant:administrator,full
// ^^^ ^^^ ^^^^^^
// 共享名稱↑ ↑共享目標 ↑可以存取的使用者名稱,full 完全控制權限

檔案讀取完畢後,記得再把共享資料夾復原回去

net share AAA /delete /y


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

此旗標會隱藏啟動橫幅和著作權訊息。


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.