基於Au3廣播式的遠端控制管理系統的設計與實現論文

基於Au3廣播式的遠端控制管理系統的設計與實現論文

  摘 要:常規的遠端控制能實現單一主控計算機對單一被控計算機的遠端管理和維護,而廣播式的遠端計算機可以實現一個主控端對多臺被控端的控制操作。本系統為解決機房中硬碟保護卡、網路還原精靈、無盤系統等維護工具功能缺陷而設計,以降低機房管理中大批次計算機的軟體的安裝、註冊、測試等工作量為目標,實現一臺計算機控制多臺軟體安裝、註冊、測試可以在多臺計算機中同步執行。

  關鍵詞:遠端控制;廣播;Au3

  1.引言

  在機房管理中,為了方便維護和管理,我們會經常使用一些軟硬體作為輔助工具,常用的有硬碟保護卡、網路還原精靈、無盤系統。這些工具給我們的機房管理帶來了很大的方便,些工具的設計都是將一臺母機的所有資料同步到其它機器中,這樣可以讓所有機器的資料與母機基本一致,並允許機器的計算機名、IP地址可以自動分配,這樣可以達到其全部主機都能正常執行的效果。但是,由此也產生一些問題,具體表現在,如果軟體安裝、註冊、測試過程中,我們可能要讓部分機器的某些輸入與母機不一致。例如在某些軟體註冊中,序列號根據主機硬體機器碼相關。而每臺機器的機器碼不相同,所以,註冊相息也會有所不同。這樣就要求我們在每臺機器上輸入不同的序列號來保證軟體能成功註冊、正常執行。而這方面的工作量是很大的,維護成本高。

  2.相關技術

  常規意義上的遠端控制是透過網路聯通需被控制的計算機,將被控計算機的桌面環境顯示到主控計算機的顯示器上,主控端透過操作主控計算機的輸入裝置實現對被控計算機進行配置、軟體安裝等工作。

  廣播是指將資訊傳送到網上所有的節點。廣播在本系統的應用主要是將指令傳送到各客戶機中,使客戶機取得操作指令,交由客戶機程式執行。

  Au3指令碼是AutoIt3 Windows自動安裝指令碼語言。AutoIt 是一種自動控制工具。它最初被設計用來自動完成安裝那些其它方法不能自動安裝的軟體。 Au3指令碼可以獲取Windows控制元件上的資訊,並且透過模擬滑鼠鍵盤實現對這些控制元件的操作而不必擔心操作動作落空。

  還原卡、網路還原精靈、無盤系統等目前並不能實現需要對不同主機配置不同資訊的軟體安裝,如活動目錄的安裝;軟體註冊需要根據機器碼生成,如3DMAXS的註冊;軟體測試需要對測試主機所輸入的帳戶資訊不允許重複,如全國計算機應用等級考試系統的測試。為了更好地解決這一類問題,是本系統的設計目標。

  3.系統體系結構

  因為要透過控制滑鼠鍵盤等操作計算機,本系統採用實現CS模式實現。

  伺服器端(主控端)主要透過Au3指令碼對主控計算機的鍵盤滑鼠等輸入裝置的操作進行捕獲、經過解析和編碼,連同捕獲到的Windows控制元件資訊經過通訊模組一同廣播到受控客戶端上。

  客戶端(被控端)主要功能是接收伺服器端傳送過來的資訊進行解碼、分析並對控制元件資訊所對應的.控制元件模擬滑鼠鍵盤執行相對應的操作。有些操作我們可能需要獲取每臺計算機單獨的MAC地址、IP地址、計算機名、機器碼等,然後根據這些獲取到的資訊進行一定的編碼,本系統也提供了很好的支援。使得在軟體安裝、軟體註冊、及軟體測試時能根據需要填寫對應的經過編碼的資訊。達到不同軟硬體,輸入資訊

  本系統的伺服器端向客戶端傳送的資料僅包括滑鼠、鍵盤操作的資訊和Windows控制元件資訊,並不傳送桌面檢視資料。客戶端看到的仍是客戶機自身的桌面,客戶機對獲取到伺服器傳送的資訊進行翻譯,實現自動操作的目的。

  4.功能模組設計與實現

  伺服器端 伺服器端的功能主要有:滑鼠鍵盤輸入識別模組、Windows控制元件識別模組、MAC、IP、計算機名、機器碼識別及編碼模組、軟鍵盤模組、通訊模組、檔案傳輸模組、螢幕牆模組、快捷命令操作模組。

  客戶端 客戶端主要是解析並執行伺服器端傳送過來的操作編碼、通訊、接收檔案等功能。

  遠端控制主要流程設計分析

  主控端鍵盤輸入捕獲實現

  If (($keycode > 64) And ($keycode < 91)) _ ; a - z

  Or (($keycode > 96) And ($keycode < 123)) _ ; A - Z

  Or (($keycode > 47) And ($keycode < 58)) Then ; 0 - 9

  $buffer &= Chr($keycode)

  Switch $buffer

  Case "Jon"

  ToolTip("What can you say?")

  Case "AutoIt"

  ToolTip("AutoIt Rocks")

  EndSwitch

  ElseIf ($keycode > 159) And ($keycode < 164) Then

  Return

  ElseIf ($keycode = 27) Then ; esc key

  Exit

  Else

  $buffer = ""

  EndIf

  被控端鍵盤解析模擬實現

  Local $tKEYHOOKS

  $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)

  If $nCode < 0 Then

  Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)

  EndIf

  If $wParam = $WM_KEYDOWtN Then

  EvaluateKey(DllStructGetData($tKEYHOOKS, "vkCode"))

  Else

  Local $flags = DllStructGetData($tKEYHOOKS, "flags")

  Switch $flags

  Case $LLKHF_ALTDOWN

  ConsoleWrite("$LLKHF_ALTDOWN" & @CRLF)

  Case $LLKHF_EXTENDED

  ConsoleWrite("$LLKHF_EXTENDED" & @CRLF)

  Case $LLKHF_INJECTED

  ConsoleWrite("$LLKHF_INJECTED" & @CRLF)

  Case $LLKHF_UP

  ConsoleWrite("$LLKHF_UP: scanCode - " & DllStructGetData($tKEYHOOKS, "scanCode") & @TAB & "vkCode - " & DllStructGetData($tKEYHOOKS, "vkCode") & @CRLF)

  EndSwitch

  EndIf

  5.結束語

  本系統主要應用於需要同時對大量計算機進行管理和維護的計算機機房。可以實現對還原卡、網路還原精靈、無盤系統等暫時不能提供解決方案的軟硬體工具提供支援與補充。同一機房中,可能存在部分機器的硬體與主控端配置不同,如顯示器解析度不一致,可能會導致滑鼠的部分操作可能出現空操作,因而無法與主控端同步。因此,在使用本系統前,必須保證所有被控端與主控端一致。

最近訪問