2015年11月1日 星期日

PsTool PsExec 常用遠端指令

遠端變更電腦名稱.bat

@ECHO OFF      
SET /P ComputerName1=舊電腦名稱:
SET /P ComputerName2=新電腦名稱:
SET /P DomainID=網域管理者Domain\Admin:
SET /P DomainPWD=網域管理者密碼:

PsExec.exe "\\%ComputerName1%" -i -d -u %DomainID% -p %DomainPWD% wmic ComputerSystem where Name="%ComputerName1%" call Rename Name="%ComputerName2%"

pause
=====================================================

遠端執行程式.bat

@ECHO OFF      
SET /P ComputerName1=目標電腦名稱:
SET /P DomainID=網域管理者Domain\Admin:
SET /P DomainPWD=網域管理者密碼:

PsExec.exe "\\%ComputerName1%" -i -d -u %DomainID% -p %DomainPWD% "\\Server\Folder\update.exe"

pause

以下轉自 http://blog.ilc.edu.tw/blog/blog/25793/post/72494/566913

列出幾個常用的指令
強制關機
start /min psshutdown -f \\192.168.1.112 -u administrator -p 123456 -t 1
關機
start /min psshutdown -k \\192.168.1.112 -u administrator -p 123456 -t 1
重新啟動電腦
start /min psshutdown -r \\192.168.1.112 -u administrator -p 123456 -t 1
關機
start /min psshutdown -s \\192.168.1.112 -u administrator -p 123456 -t 1


以下轉自  http://blog.xuite.net/jyoutw/xtech/24607577-PsTools+%E4%B9%8B+PsExec+的用法

下載:pstools
預設的原始目錄為 %SystemRoot%C:\windows
語法:
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]
參數(部份):
-c:將指定的程式複製到遠端系統以執行。如果省略這個選項,則應用程式必須在遠端系統上的系統路徑中。
-d:請勿等候應用程式終止。僅使用這個非互動式應用程式的選項。
-f:即使檔案已經存在於遠端系統內,還是將指定的程式複製到遠端系統。
-i:執行此程式,才能夠讓它與遠端系統中指定的工作階段的桌上型電腦互動。如果沒有指定的工作階段,則處理序在主控台工作階段中執行。
-l:以限制使用者的身分執行處理序(刪除系統管理員群組,且只允許使用者群組指派的權限)。在 Windows Vista 中,使用低整合性執行處理序。
-p:指定選擇性使用者名稱密碼。如果省略這個動作,則會出現輸入隱藏密碼的提示。
-u:指定選擇性使用者名稱以登入遠端電腦。
-w:設定處理序的工作目錄(相對於遠端電腦)。
@file:導入 PsExec 以執行每個電腦(指定的文字檔中所列示)的命令。
範例:
執行遠端電腦上的IE
psexec -u domain\user -p password \\192.168.0.24 -d -l -i "X:\Program Files\Internet Explorer\iexplore.exe"
開啟遠端電腦上的檔案(shutdown.bat)
psexec -u domain\user -p password \\192.168.0.24 -d -w c:\sch -i notepad shutdown.bat
顯示遠端電腦的連線狀態(會跳出輸入密碼的提示)
psexec -u domain\user \\192.168.0.24  netstat -na
啟動遠端電腦上的互動式命令提示(會跳出輸入密碼的提示,user 要為 Administrators 群組成員)
psexec -u domain\user \\192.168.0.24 cmd
複製檔案(cpuz.exe)到遠端電腦上(會跳出輸入密碼的提示)
psexec -u domain\user \\192.168.0.24 -c cpuz.exe


以下轉自  https://technet.microsoft.com/zh-tw/magazine/2007.03.desktopfiles.aspx

以下是 PsExec 的簡化使用方式:
PsExec \\computer -u username -p password command
您可以使用 [圖 3] 顯示的參數來延伸功能。


PsFile
相較於 PsExec,PsFile 算是用途比較狹窄的工具。具體來說,它是用來檢查遠端系統上開啟了哪些檔案,以及由誰開啟。如果您想要在重新啟動伺服器之前,先追蹤哪些檔案處於開啟狀態,這個工具就很好用。如果您要知道哪位使用者鎖定了檔案 (可能是為了防止檔案被編輯或刪除),您可以手動方式通知使用者,或透過 PsFile 關閉檔案。PsFile 的使用方式如下:
PsFile \\computer -u username -p password 
這只會傳回在遠端系統上的已開啟檔案控制碼清單。除了標準用法以外,您也可以新增 Id 參數到陳述式中,以便指定您想要尋找相關資訊或要關閉的檔案名稱。您還可以加入 -c 參數,這樣會關閉您使用 Id 參數所指明的檔案。

PsGetSid
PsGetSid 也是用途較為狹窄的工具。它會告訴您有關電腦、使用者或群組的安全識別項 (SID)。若您想要確認網域中沒有重複使用 SID,或只是想要檢查系統上所有使用者或群組的 SID,都很適合使用這個工具。PsGetSid 的使用方式如下:
PsGetSid \\computer -u username -p password account
請注意,帳戶可以用來指定使用者、電腦或群組。PSGetSid 的語法很簡單,不過還提供幾個額外參數。SID 參數可指定已經有指定 SID 的帳戶 (群組或電腦),而 @file 則會根據指定的文字檔案清單,在清單所列的所有電腦上執行命令。

PsInfo
PsInfo 可用來提供詳細的系統資訊。顯然這個工具在撰寫多個遠端系統的指令碼時最好用,它的輸出會傳送到檔案 (例如 Excel® 及適用於資料庫的 CSV 檔案)。請注意,這個公用程式運作的重要概念與其他大部分的工具不同:如果您並未提供電腦名稱,則 PsInfo 預設會嘗試查詢網域中的所有電腦。PsInfo 的使用方式如下:
PsInfo  \\computer -u username -p password 
語法很簡單,不過也提供如 [圖 4] 所示的額外參數 (Switch/Parameter)



參數描述
-h顯示所有 Windows 更新。
-s顯示系統上安裝的所有應用程式。
-d顯示有關系統的磁碟/磁碟區資訊。
-c以 CSV 格式輸出結果。
-t指定 \t 預設值以外的另一種 CSV 檔案分隔符號。
Filter只顯示符合指定篩選條件的資料。
@file在指定的文字檔案所列的所有電腦上執行命令。

PsKill
PsKill 是適用於在本機或遠端系統上終止處理序的公用程式。用法很簡單,它可讓您迅速刪除處理序以及其所有子處理序。PsKill 的使用方式與我先前討論的其他工具很類似:
PsKill -t \\computer -u username -p password process id | process name
請注意,您可以指定所要刪除的處理器識別碼或處理器名稱。

PsList
我不常使用 PsList,因為我是 Process Explorer 的愛用者 (詳細資訊請參閱 microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx)。不過由於 Process Explorer 沒有可遠端處理的版本,因此 PsList 理所當然成為 Process Explorer 提供的某些關鍵功能的代用品。實際上,PsList 是一份可遠端處理清單,其中包含在遠端系統上執行的一個或多個處理序。
PsList 的使用方式很簡單:
PsList \\computer -u username -p password account
正如其他工具一樣,帳戶參數可以指定為使用者、電腦或群組。額外的參數如 [圖 5] 所示。



參數描述
-t顯示執行緒層級的資訊。
-m提供每個處理序的詳細記憶體資訊。
-x顯示處理序、記憶體及執行緒資訊
-t以處理序樹狀目錄的方式顯示資訊 (類似 Process Explorer 樹狀檢視)。
-s [n]在工作管理員模式中持續執行指定的秒數。這樣可即時顯示 (相對而言) 遠端處理序資訊。
-r [n]指定在工作管理員模式中執行時,重新整理的頻率 (以秒為單位)。
name顯示以指定名稱開頭之處理序的相關資訊。
-e精準比對處理序名稱。
pid顯示有關特定處理序的資訊。
PsList 的功能超強且容易使用,讓您無須使用遠端桌面即可檢視詳盡的遠端處理序資訊。舉例來說,您可以利用這些資訊進一步透過 PsKill 或 PsSuspend 來處理必須制止的處理序。

PsLoggedOn
PsLoggedOn 的用途不言可喻。此公用程式會顯示登入系統的使用者。無論是本機 (互動) 登入或網路共用登入均可顯示。這個工具與 PsFile 相似,當您需要在伺服器上執行維護作業時,很適合用來辨識正在使用伺服器的使用者。使用方式很簡單:
PsLoggedOn \\computer
PsLoggedOn 只有兩個選擇性參數:-l 只會顯示本機登入 (無網路登入),而 -x 會排除登入時間。
雖然功能很陽春,不過 PsLoggedOn 可讓您輕鬆地檢視資訊,而不用辛苦地在好幾個 Windows 位置中挖掘。

PsLogList
PsLogList 是最實用的公用程式之一,這個工具將 Windows 事件記錄檔傾印成文字格式,接著再用於記錄讀取器、資料庫或其他任何用途。它的主要優點是能夠將事件記錄檔項目從原本的二進位格式轉換成容易轉換或自動化的格式 (當然,在 Windows Vista™ 中的事件記錄檔原本就提供 XML 格式,不過這又另當別論了)。
PsLogList 的使用方式如下:
PsLogList \\computer -u username -p password
另外提供的一些額外參數如 [圖 6] 所示。



參數描述
-a指傾印指定日期之後的事件。
-b只傾印指定日期之前的事件。
-c傾印所要的輸出後,永久清除事件記錄檔。
-d只顯示指定天數的資訊。
-e排除包含指定事件識別碼的事件 (最多可指定 10 個)。
-f篩選事件類型 (警告、錯誤...等等)。
-g將事件記錄檔匯出成 EVT 檔案 (需要使用 -c 參數)。
-h只顯示指定小時數的資訊。
-l從指定的 EVT 檔案傾印。
-m只顯示指定分鐘數的資訊。
-n只顯示指定筆數內的最新事件。
-o只顯示來自特定來源的事件 (例如,-o SRService 代表來自 Windows System Restore Service 的事件)。
-q排除特定來源的事件 (與 -o 相反)。
-r反轉順序,依照最舊到最新的順序來傾印記錄事件。
-s以每行一個分隔欄位的方式列出記錄。
-t將 -s 輸出的分隔符號 (逗號) 指定為其他符號。
-w等待新事件填入,然後即時傾印。這只適用於本機系統。
-x傾印事件記錄檔的延伸資料。
eventlog指定要傾印的事件記錄檔。預設值是 System。
@file在文字檔案中指定的所有電腦上執行命令。
Windows 事件記錄檔是一項功能極為強大的診斷工具,不過麻煩的地方是取得資料以致於能夠操作或合併這些資料的過程。PsLogList 就能處理這件麻煩事。

PsPasswd
PsPasswd 是簡單而有效的公用程式,其設計與 Net.exe 的一些功能雷同,但兼顧了可遠端處理及自動化的能力。
PsPasswd  \\computer -u username -p password Username Newpassword
您可以指定電腦,也可以不指定電腦 (本機系統),或者將電腦指定為 \\*,如此一來,公用程式便會在目前網域中的所有電腦上執行。PsPasswd 只提供一個額外參數:@file 在文字檔案中指定的所有電腦上執行命令。再強調一次,這是非常基本的公用程式,但是可提供超強的多系統操作功能。

PsService
PsService 可讓您檢視及編輯網路中的一個或多個系統上的服務控制管理員 (SCM) 資訊,您甚至可以搜尋位於您網路中的系統上的指定服務名稱。
PsService \\computer -u username -p password command options
執行 PsService 時,命令是指 [圖 7] 所列的其中一個命令,而選項則會指定要套用到特定命令的屬性。若未提供額外的命令參數,PsService 將會提供完整的 SCM 資訊傾印。



命令描述
query查詢指定的服務。
config查詢指定服務的組態資訊。
setconfig設定指定服務的組態資訊。
start啟動服務。
stop停止服務。
restart重新啟動 (停止再啟動) 服務。
pause暫停服務。
cont繼續執行暫停的服務
depend顯示依存指定服務的服務。
find在網路中尋找指定的服務執行個體。
security提供指定服務的安全性資訊。
因此您可以將 PsService 想像成功能強大且提供可遠端處理之命令列的 Services.msc 翻版,不僅如此,還可讓您跨網路查詢服務 (看看是否有潛在危險性的服務) 並設定組態資訊。

PsShutdown
PsShutdown 是另一個我愛用的工具。有些人可能會說,Microsoft 已經包含可處理這項工作的工具 (shutdown.exe),但其實不盡相同。主要差別在於 PsShutdown 的強大功能:也就是它可以關閉或重新啟動遠端系統。除此之外,這個工具還能讓系統進入待命或休眠模式 (不僅是關機或重新啟動),也可以鎖定系統,還可以對使用者顯示訊息,然後在指定的一段時間後重新啟動系統。
PsShutdown \\computer -u username -p password
PsShutdown 可以使用一些額外參數,如 [圖 8] 所示。



參數描述
-a中止由 PsShutdown 啟動的正在進行中的關機作業。
-c可讓互動使用者中止關機作業。
-d暫止電腦 (待命)。
-e關機理由代碼。建議您瀏覽 Microsoft 網站以取得使用這些參數的協助,因為這些參數同時與 PsShutdown 和內建 shutdown.exe 搭配使用時可能會引起問題。詳細資訊請參閱 msdn2.microsoft.com/en-us/library/aa376885.aspx。
-f強制終止所有執行中的應用程式。
-h讓電腦休眠。
-k關閉電腦電源 (若不支援電源關閉,則重新開機)。
-l鎖定電腦。
-m指定要向互動使用者顯示的訊息。
-n指定要等候的逾時時間,超過此時間則無法連線到遠端電腦。
-o登出主控台使用者。
-r重新啟動電腦。
-s關機,但不關閉電源。
-t執行關機命令前的倒數計時時間,或是關閉電源的特定時間。
-v關機之前向使用者顯示的訊息。
@file在文字檔案中指定的所有電腦上執行命令。
您可以看出,PsShutdown 是功能超強且可設定性很高的系統電源控制公用程式,而且相對來說很容易使用。

PsSuspend
若您想要暫時管控不聽話的處理序,或是希望高 CPU 使用率的處理序暫緩執行且不會遺失任何資料或應用程式內容,那麼 PsSuspend 是很方便的公用程式。
PsSuspend \\computer -u username -p password process ID
您可以使用 PsList 來取得處理序識別碼。將處理序暫止之後,可以使用 -r 參數來繼續執行該處理序。請注意,Process Explorer 也實作了暫止及繼續執行處理序的概念,但只適用於本機。顯然 PsSuspend 能夠在遠端與本機上暫止和繼續執行處理序,在這點上它比 Process Explorer 的內建實作更有優勢。

結論
我發覺 PsTools 組合是很寶貴的公用程式集。當我在系統中重新安裝 Windows 時,相較於其他 Sysinternals 公用程式 (即 Regmon、Filemon、Process Explorer 以及現在的 Process Monitor),PsTools 是第一個放入我的路徑中的程式。如果您之前不熟悉 PsTools,我希望本專欄能夠帶領您認識這套工具,如果您已經知道 PsTools,那麼我希望您在此能獲得有關此工具的一些額外知識。當然我要特別感謝 Mark Russinovich 這麼多年來免費提供這些工具,並且在我撰寫這篇專欄時提供內容上的協助。

沒有留言:

張貼留言