Win2003服務器RPL遠程啓動服務的安裝與實現

學識都 人氣:2.48W
Win2003服務器RPL遠程啓動服務的安裝與實現
摘 要:介紹了在Windows 2003 Server、Windows 2000 Server等操作系統上安裝遠程啓動服務的原理與,採用VC6.0編程,成功實現了把Windows NT4.0 的遠程啓動服務程序移植安裝到Windows 2003 Server、Windows 2000 Server等服務器上。編寫的軟件具有使用方便、兼容穩定可靠等特點。爲在新操作系統上安裝無盤工作站、無盤終端提供了良好基礎。關鍵詞:遠程啓動服務;RPL;Windows 2000 Server;無盤工作站
1      引言在客戶機/服務器體系結構中,無盤工作站以其成本低廉、具有最大程度的的安全性和最簡便的可維護管理性等突出優點得到了廣泛[1,2,3,4]。無盤站顧名思義就是不使用本機磁盤驅動器的機工作站。無盤站是怎樣工作的呢?無盤站在使用時必須連接入網絡並配備至少一臺網絡服務器,無盤站的支持依靠的是網絡服務器上的遠程啓動服務。遠程啓動服務(Remoteboot)是 Windows NT Server 和Novell NetWare提供的一項功能,它支持使用服務器硬盤而不是工作站硬盤上的軟件啓動 MS-DOS 和 Windows 工作站。工作站的網絡適配卡上必須裝有一個RPL(Remote Program Load遠程初始程序加載)ROM 芯片。帶有RPL的網絡接口卡發出引導記錄請求的廣播(broadcasts),遠程啓動服務服務器就自動地建立一個連接來響應它,並加載MS-DOS或 Windows 啓動文件到工作站的內存中。
Novell NetWare及Windows NT都提供了無盤工作站利用Boot ROM遠程啓動的功能。WindowsNT4.0就集成了遠程啓動服務程序,在安裝操作系統時,可選擇安裝該服務。這些操作系統都能支持無盤工作站採用DOS、Win3.1、Win95、Win98等操作系統。因Windows NT操作系統具有操作簡便等特點,逐漸代替了NetWare操作系統,使以前廣泛採用Novell NetWare無盤工作方式的用戶,大多開始採用Windows NT操作系統。
隨着計算機軟硬件檔次的提高,及無盤Win98技術、無盤Win2000、無盤WinXP及無盤終端等技術的實現,無盤網絡的應用越來越廣泛。網絡操作系統也由WinNT升級爲的Win2000 Server和Win2003 Server。但非常遺憾的是,微軟在新的 Win2000 Server 和 Win2003 Server 中不再支持RPL遠程啓動了。由於Windows 2003 Server、Windows 2000 Server服務器比 NT服務器可以提供的更多的服務、更穩定的系統和更高的安全性。因而用戶都希望把無盤網絡的服務器升級爲新的服務器操作系統,這樣就需要在Windows 2003 Server、Windows 2000 Server服務器上安裝具有遠程啓動服務的軟件。
Windows NT4.0 中的遠程啓動服務軟件是集成在NT安裝軟件中的,沒有單獨的Setup或Install程序,不能直接在 Win2003 Server 或 Win2000 Server中安裝。如果從頭設計編寫遠程啓動服務軟件,是比較困難的。我們從NT4.0中提供相關RPL服務的軟件有幾百個,就可看出該系統的複雜性。能否通過別的方法把NT4.0中的遠程啓動服務轉移到Windows 2003或 Win2000裏呢?根據這一設想,我們開展了相關。2      遠程啓動服務安裝軟件的`設計與實現2.1  WinNT 4.0遠程啓動服務程序工作原理通過對 Windows NT 4.0 安裝遠程啓動服務的過程及工作情況,我們瞭解到,Windows NT 4.0 主要是把光盤中的 Clientsrpl 目錄中的文件無變化地拷貝到服務器 Winnt目錄下面,其中有BBLOCK目錄、BIN目錄、FITS目錄、RPLFILES目錄和數據庫文件等。
另利用把 I386 中與遠程啓動服務和管理及需要的動態連接庫文件等解壓到 Winntsystem32 目錄中,主要把
_      解壓爲      ;
_            解壓爲      ;
_            解壓爲      ;
_            解壓爲      ;
_            解壓爲      ;
_            解壓爲      ;
_            解壓爲      ;
其中 是遠程啓動服務程序,是遠程啓動管理程序,是網卡參數配置程序。這三個文件執行時,需要調用動態連接庫和。
文件拷貝安裝後,又在註冊表中添加服務註冊信息爲:
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRemoteBoot]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"="%SystemRoot%system32"
"DisplayName"="遠程啓動服務"
"ObjectName"="LocalSystem"
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRemoteBootParameters]
"BackupInterval"=dword:00000018
"Directory"="C:WINNTRPL"
"Startup"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRemoteBootEnum]
"0"="RootLEGACY_REMOTEBOOT000"
"Count"=dword:00000001
"NextInstance"=dword:00000001
其中:"ImagePath"="%SystemRoot%system32" 指出了遠程啓動服務程序所在的目錄路徑;遠程啓動服務啓動後,就是根據註冊表的這項信息,找到程序,並執行之。另"Directory"="C:WINNTRPL" 指出了RPL文件目錄所在磁盤位置,遠程啓動服務程序就是到該目錄下獲取無盤站配置文件數據信息,爲無盤站提供遠程引導文件的
2.2  手工移植遠程啓動服務程序到Win2003服務器根據上步的遠程啓動服務程序在WinNT上安裝的情況,我們能不能把這些程序等以相同方式拷貝到Win2003服務器上,而能正常運行,提供遠程啓動服務呢。如果手工配置能成功,就可以編寫一安裝程序,方便用戶安裝該服務。下面是我們手工操作的步驟。
1、我們用資源管理器把光盤上 Clients 下面的 RPL 目錄拷貝到 Win2003 服務器的 Winnt目錄下。因光盤上文件是隻讀屬性的,拷貝後的文件也是隻讀屬性的,所以需要把拷貝後所有文件的只讀屬性去掉。
2、在WinNT中是把、、、和等文件拷貝到 Winntsytem32 目錄下面的,我們準備也把這幾個文件拷貝到Win2003 服務器的 Winntsystem32 目錄下,可拷貝時發現該目錄下面已有和。這兩個文件已是Win2003版本的,不能用NT4.0的這兩個文件覆蓋,否則Win2003服務器的運行。可2003版本的該動態連接庫文件中又沒有提供對RPL支持的函數,不拷貝這兩個文件,RPL服務就不能運行。
怎樣解決這一呢?考慮到EXE文件在執行時,是首先在當前目錄下調用其需要的動態連接庫DLL的,若找不到的話,纔到系統目錄(Winntsystem32)下面去尋找調用。因此可以考慮把這些文件安裝到別的目錄中,只要安裝在相同目錄下面,就不影響等程序調用支持RPL的動態連接庫和了。爲了好管理,我們試着把這幾個文件也全拷貝到了RPL目錄下。
3、現在可以導入註冊表項目了。因爲上步的遠程啓動服務及管理等程序文件沒有安裝在系統目錄中,必須修改註冊表相關項目,因爲安裝到了RPL目錄下,所以要把註冊表項:
"ImagePath"="%SystemRoot%system32"
修改爲      "ImagePath"="%SystemRoot%rpl"
如果我們是把Win2003系統目錄安裝到D盤的,是把RPL目錄拷貝到 "D:WINNT" 目錄下面的,還必須把
                 "Directory"="C:WINNTRPL"
修改爲:      "Directory"="D:WINNTRPL"
導入該註冊表文件後,重新啓動服務器後,就發現遠程啓動服務已成功運行了。這樣,遠程啓動服務就成功從Windows NT4.0上移植到了Win2003服務器上。


2.3  編寫自動安裝遠程啓動服務的程序對於一般機用戶來說,用手工在Win2003上安裝遠程啓動服務,比較麻煩,容易出錯。因此有必要編寫一自動安裝程序。我們用VC++6.0編程完成了這一RPL安裝軟件。用戶只需把有RPL文件的NT4.0安裝光盤放入計算機光驅,或拷貝到計算機硬盤上,執行即可實現安裝。
軟件在執行時,將自動探測NT4.0光盤的Clientsrpl和i386的目錄;利用VC的getenv("windir"),就可以探測Win2003 Server的系統所在盤和Winnt目錄,利用CopyFile(lpExistingFileName, lpNewFileName, bFailIfExists)等代碼可以實現把RPL目錄文件拷貝到系統的WinNT目錄下。利用WinExec代碼和程序,可以實現把i386下面的_等文件,解壓爲等,並拷貝到RPL目錄下。根據上面RPL等文件實際安裝的目錄路徑,自動修改註冊表需要的遠程啓動服務程序和RPL目錄所在的路徑。用RegOpenKeyEx、RegCreateKey及RegSetValueEx等代碼可實現註冊表信息的導入[5]。
另利用CoCreateInstance等代碼,在桌面和程序組管理工具上創建遠程啓動管理程序的快捷方式,方便用戶使用遠程啓動的管理程序。在Winntsystem32目錄下,建立批命令文件,可自動調用Winntrpl目錄下面的 程序,方便用戶使用RPLCMD命令登錄網卡參數。安裝完畢後,自動要求用戶重新啓動計算機,以使遠程啓動服務開始運行。2.3  添加用於無盤引導的DLC等協議RPL服務需要IPX協議、DLC協議和NetBEUI協議的支持,安裝RPL前軟件要自動探測系統是否已安裝了這些協議,否則將自動提示用戶添加這些協議,或自動安裝。
可在Win2003 Server 版本中,微軟已不在支持DLC和NetBEUI協議了,因此需要我們自己編寫這兩個協議的安裝程序。實際上我們採用了上面介紹的RPL安裝思路,同樣實現了該協議的安裝。該部分程序集成在上面的RPL安裝程序中,若發現系統沒安裝這些程序,就自動把DLC和NetBEUI協議的驅動程序文件等解壓到服務器上,修改註冊表,實現協議的安裝。
   
3      結束語
利用該技術已開發出穩定的RPL安裝軟件,已通過網站 向用戶提供下載服務。通過大量用戶使用證明,該安裝軟件使用方便,安全可靠,實現了在Win2000 Server和Win2003 Server等操作系統上安裝遠程啓動服務程序的目的。

[1]      姚衛新. Windows NT4.0下無盤工作站的建立方法[J]. 微型機與,2000,(3):53-55.
[2]      王曉,林學華. NOVELL無盤使用與改造升級常見與[J]. 計算機應用,2001,21(1):79-81.
[3]      洪錫軍,張奎亭等. Windows NT無盤工作站的組建[J]. 計算機應用,2001,(6):134-137.
[4]      原麗. Windows NT的無盤遠程引導及實現方法[J]. 內蒙古與,2002,(7):73-74.
[5]      Microsoft. MSDN Library Visual Studio 6.0 2000[CP/DK].2000