遠端重啟 remote restart computer

關於遠端 remote restart computer

最近在研究將客戶的技術支援請求中,將一些簡單的行動自動化。技術支援伺服器在收到新的電郵並偵測到有重啟客戶伺服器的需求時,會自動在資料庫搜尋客戶伺服器的IP, 並發出重啟指令。

客戶所使用的電腦都是windows系統,原本考慮使用SSH以及NodeJS去處理這個步驟。不過不是每一台伺服器都有安裝OpenSSH,嚴格上來說基本上沒有一台有安裝過。

本來設計好的技術支援伺服器是用Linux系統的,也曾經嘗試換作Windows系統,用內建的遠端重啟指令,但發現有緒多限制,例如要在發送指令當刻輸入密碼,或是預先將密碼儲存到Credential。來決定改用SSH方法,但卻需要逐一安裝OpenSSH,最後終於找到一個最合適的方法,就是用Linux的samba-common,完全貼合我的需求,在Linux系統直接發送指令到目標Windows伺服器,而且可以在指令中包含帳號及密碼,以實施全自動化。

要在Linux上重啟Windows的電腦,首先要安裝 samba-common

最決於你用甚麼Linux系統,我是用Ubuntu, apt-get指令如下

apt-get install samba-common
如有需要可能要在最前面加上 sudo

安裝完以後就可以在Terminal中輸入以下指令關閉或重啟遠端Windows電腦:

net rpc shutdown -r -t 5 -I <ip address> -U <username>%<password>

-r 代表重新啟動,若要關機可改為-s,可在後面再加上-f表示強制關閉或重啟

-t 5 代表5秒後關閉或重啟,可自己更改數字到所需秒數

可以在-I 的前面加上 -C "XXXXXXXX" 發送信息到遠端電腦的電腦關機屏幕信息通知用家即將關機

-I 則是要關機或重啟目標電腦IP地址,例如 -I 192.168.1.100

-U 則是該電腦的使用者及密碼,例如 -U user%Abcd1234

請注意使用者名稱與%以及密碼中間不要留有空格,否則會失敗

-完-