如何利用排程為遠端主機重新開機?
到iT邦幫忙
a54sports(iT邦初學者10級)發問:
想要利用排程機制,替遠端主機重新開機或為某個服務重新啟動,請問有什麼方式可以做到呢?
tombo(iT邦初學者5級):
使用Windows內建指令即可。要將遠端電腦重新開機,請使用shutdown指令,要將遠端電腦服務停止或起動,請使用sc指令。
例如將遠端電腦重新開機:
shutdown /r /m \192.168.1.254 /t 0
要注意的是,如果電腦登入帳號,與遠端電腦管理權限帳號、密碼不同時,直接執行此指令會失敗,但是有個小技巧可以解決,使用「net use \192. 168.1.254\c$ /user:administrator password」,所以可以寫個批次檔如下:
net use \192.168.1.254\c$ /user: administrator password
shutdown /r /m \192.168.1.254 /t 0
net use \192.168.1.254\c$ /delete
至於要將遠端電腦的服務停止,就使用sc指令,語法格式如下:
sc \遠端電腦IP [stop|start] ServiceName
例如:
sc \192.168.1.254 stop wuauserv
遇到遠端電腦的帳、密不同時,也可以利用上面的技巧來解決。
所以只要把這些指令寫成批次檔,再使用排程去執行就可以!
如果要用Windows Script來重新開機,可以將以下程式碼存成.vbs就可以執行:
strComputer = "要重新開機的電腦名稱或IP"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Reboot()
Next
如果要遠端電腦服務重新啟動,請將以下程式碼存成.vbs就可以執行(編按:因程式碼長度過長,請至iT邦幫忙網站檢視程式碼)。它會停止相依的服務,然後重新啟動(包括相依服務)。
熱門新聞
2025-01-20
2025-01-20
2025-01-20
2025-01-23
2025-01-24