2015年10月28日 星期三

PsExec:執行遠端電腦上的指令或批次檔

轉自 http://www.wretch.cc/blog/jerry0822/13537517
PsTools
下載網址 https://technet.microsoft.com/en-us/sysinternals/bb896649

PsExec:執行遠端電腦上的指令 
PsExec最主要的功能就是啟動遠端電腦上的命令式批次指令,或是Regedit等特定的系統工具程式。舉例來說,若我們欲在名稱為iThome的遠端電腦上,執行test.exe程式,則可鍵入「psexec \\iThome -u user -p passwd -c c:\test.exe」,其中user與passwd為系統管理員帳號及密碼,而這兩個也是PsTools的公用參數;至於-c則代表先將應用程式test.exe,複製到遠端電腦後再執行。值得注意的是,若使用者未指定欲執行的應用程式路徑,則會使用預設的原始目錄,亦即Windows根目錄(%SystemRoot%)。 

利用PsExec的特定參數「-i」,可以互動方式在遠端系統上執行應用程式,便於讓使用者檢視應用程式的使用者介面;此外參數「-f」,則是強制將本機的應用程式複製到遠端系統後再執行,無論遠端系統是否已具備此應用程式,以確保使用者執行的程式為最新(或特定)版本。
===================
執行指令如下
psexec "\\xxxxxxxx" -i -d -u domain\user -p password  "\\xxxxxxxx.xxxxxxxx.com\xxxxx\xxxxxxxx.bat"

===================
Q:AP主機遠端登入連線數量已滿,可能有人卡著沒有登出,連RDP的Console也被佔用了,不想進機房,或是在外地沒辦法進機房怎麼辦?
A:假設在外地好了,連線回辦公室電腦,開始執行CMD
      切換到PSTools所在路徑,輸入 psexec \\server_ip -u username -p password cmd.exe
      驗證過帳號密碼後,就可以連線到遠端主機並且開啟遠端主機的cmd視窗,接下來只要查出那些人卡在主機上再把他們踢掉就好了

===================
Q:如何不用經過遠端桌面(RDP)快速新增主機上的使用者?
A:回到減少出錯的這個目標,當然也是為了早點做完,早點回家的理想,把使用者帳號維護的工作寫成Batch檔案是個好主意!
     
       使用者新增.bat
@ECHO OFF
        
SET /P SERVERIP=Server IP:        
SET /P SERVERUSERID=User ID:        
SET /P SERVERUSERPWD=User Pwd:        
SET /P CREATEUSERID=Create User ID:        
SET /P CREATEUSERPWD=Create User Pwd:

PSEXEC \\%SERVERIP% -U %SERVERUSERID% -P %SERVERUSERPWD% NET USER %CREATEUSERID% %CREATEUSERPWD% /ADD /COMMENT:"Admin"         

PSEXEC \\%SERVERIP% -U %SERVERUSERID% -P %SERVERUSERPWD% NET LOCALGROUP Administrators %CREATEUSERID% /ADD & PAUSE

使用限制
執行工具的遠端系統上,必須啟用預設的系統管理網路共用 (admin$); 
而且必須在遠端系統上開啟用於「檔案和印表機共用」的連接埠 (無論使用的是 Windows 防火牆、網際網路連線防火牆或其他防火牆產品)。 

工具列表
工具描述
PsExec可讓您在任何使用者內容中執行處理序。
PsFile顯示系統上以遠端方式開啟的檔案。
PsGetSid顯示電腦或使用者的 Windows 安全性識別碼 (SID)。
PsInfo列出有關 Windows 系統的資訊。
PsKill根據名稱或處理序識別碼刪除處理序。
PsList列出有關執行中處理序的詳細資訊。
PsLoggedOn顯示所有本機登入使用者,以及遠端資源共用使用者。
PsLogList傾印 Windows 事件記錄檔記錄。
PsPasswd變更使用者帳戶密碼。
PsService檢視和控制 Windows 服務。
PsShutdown讓電腦關閉、重新啟動、休眠或暫止。
PsSuspend暫止執行中的處理序。

沒有留言:

張貼留言