2005年12月16日 星期五

Windows XP 批次遠端關機

電腦教室下課時,經常一堆小朋友忘記關機就拍拍屁股走人。以前得逛一趟教室,一一尋找出未關機的電腦來處理。感謝伙伴 huihui 把電腦教室的 Windows 網域建立得非常完善,現在可以在座位上對尚未關機的電腦用 shutdown 指令直接令其關機了。

shutdown -s -f -t 0 -m pcname

  • -s :關機 ( shutdwon )
  • -f :強迫中止程式執行
  • -t 0 : 0 秒後關機,也就是立刻關機啦
  • -m pcname :關閉網域上名稱為 pcname 的電腦

透過這一行指令,網域管理員可以立刻強制關閉網域裡的電腦。

但是一個 shutdown 指令只能關閉一部電腦,要關閉多部電腦,那就要借重 for 指令了。

關於 for 指令,可以在命令視窗裡用 for/? 來看他的說明,這裡只介紹我用到的部份。

for /F %a in (pcs.txt) do shutdown -s -f -t 0 -m \%a

  • /F 將 pcs.txt 裡的每一行逐一指定給 %a 變數

可以把這一行寫成一個批次檔,這樣就不必每次打一長串指令了。

接下來,只要每次最後一節課,看著教學廣播系統,把沒有關機的電腦名稱逐行地寫入 pcs.txt 檔案裡,並執行上面的 for 指令, for 指令便會從 pcs.txt 裡面,一行一行地把電腦名稱代入 %a 裡執行 shutdown 指令做遠端關機,一次搞定。

什麼?你問我為什麼不直接把全部電腦名稱直接寫進 pcs.txt 裡面嗎?如果 shutdown 指令遠端關機的電腦已經先自己關機了,反而會因為等不到回應會直到 time out 才會繼續執行下一次的 shutdown ,這樣反而會浪費時間。

就這樣啦!

沒有留言:

張貼留言