這樣就產生了一個日常問題:每天都需要到機房里把每臺電腦逐個開機,下班后有需要每臺電腦逐個解鎖美萍然后關機(當然不排除拉電閘這種高效方法)。在這種情景下就萌生了要一個遠程開關機的程序這么個需求。 首先說關機這事吧。這個實現起來途徑很多,難度不大。例如windows系統便自己擁有允許遠程關機這么的一個命令: shutdown [/m \\computer] shutdown命令允許向遠程計算機發送關機指令,當然需要遠程計算機端授權允許才行,如何授權?可以在組策略里找到相關選項;其次,就是使用軟件關機命令,使用軟件實現調用系統的api從而實現關機,這個為代碼實現方法;還有就是可以使用批處理的at命令,執行計劃任務,當到達下班時間便自動關機。 最后我選擇了第二種,軟件實現方法。排除第一種方法,是對于系統完整性和對部署機的不了解決定的,在程序正式做好投入使用之前我是沒到現場見過那些體驗機的,即我對目標機器完全不了解,系統是否為精簡版、登錄需要密碼不?其次在技術研究的時候,使用了2臺筆記本做實驗,發現有一臺無法實現關機,問題一定是處在系統配置及自身上,但是作為非專業windows維護人員,又無法通過更改配置解決問題。要是營業廳也出現這樣的機器無法解決就不好了;第3中方法就太簡單了,配置好計劃任務后下班時間自動關機,但是領導不采納,估計就是覺得它缺乏控制力。 開機,這個問題已開始覺得比較麻煩,后來發現這個非常容易,因為網卡正好具備了一個叫做“Wake On LAN”的功能,簡單的說一下,“wake on lan” 原理。首先需要bios支持,打開bios設置,大概在電源管理里把wake on lan 設置為 enable 使能。然后向欲開機的的主機的子網發送一個廣播包,包的內容為:6個“FF"+16個目標主機網卡地址。例如目標主機的mac地址是“00010203040506”,那么這個包的內容就是
復制代碼代碼如下: FFFFFFFFFFFF0001020304050600010203040506000102030405060001020304050600010203040506 0001020304050600010203040506000102030405060001020304050600010203040506 0001020304050600010203040506000102030405060001020304050600010203040506 00010203040506 注意中間沒有回車。 將以上數據以udp方法發送到7或者9端口上。這樣便實現了遠程開機功能。 開機和關機的技術點就這么個解決方法。接著再說說界面問題,界面是個大問題,不知道是不是由于要把這個軟件作為營業廳提高工作效率的創新工程,要求界面一定要好看,無奈經過幾番修改仍達不到領導理想中的界面,請領導描述具體外觀要求,又只說“要漂亮”。幸得時間有限,改到最后限期不滿也得接受了。 GUI集設計和控制為一體,通過工具欄里新增布局面板和往布局面板里新增電腦,鼠標自由拖動面板和電腦的位置。右鍵設置參數,可自定義面板顏色和文字,通過高亮度電腦表示該主機ping得通。
關鍵詞: