Win2003服务器RPL远程启动服务的安装与实现
2.2 手工移植远程启动服务程序到Win2003服务器
根据上步分析的远程启动服务程序在WinNT上安装的情况,我们能不能把这些程序等以相同方式拷贝到Win2003服务器上,而能正常运行,提供远程启动服务呢。如果手工配置能成功,就可以编写一安装程序,方便用户安装该服务。下面是我们手工操作的步骤。
1、我们用资源管理器把光盘上 Clients 下面的 RPL 目录拷贝到 Win2003 服务器的 Winnt目录下。因光盘上文件是只读属性的,拷贝后的文件也是只读属性的,所以需要把拷贝后所有文件的只读属性去掉。
2、在WinNT中是把RPLSVC.EXE、RPLMGR.EXE、RPLCMD.EXE、NETAPI32.DLL和NETUI1.DLL等文件拷贝到 Winnt/sytem32 目录下面的,我们准备也把这几个文件拷贝到Win2003 服务器的 Winnt/system32 目录下,可拷贝时发现该目录下面已有NETAPI32.DLL和NETUI1.DLL。这两个文件已是Win2003版本的,不能用NT4.0的这两个文件覆盖,否则影响Win2003服务器的运行。可2003版本的该动态连接库文件中又没有提供对RPL支持的函数,不拷贝这两个文件,RPL服务就不能运行。
怎样解决这一问题呢?考虑到EXE文件在执行时,是首先在当前目录下调用其需要的动态连接库DLL的,若找不到的话,才到系统目录(Winnt/system32)下面去寻找调用。因此可以考虑把这些文件安装到别的目录中,只要安装在相同目录下面,就不影响RPLSVC.EXE等程序调用支持RPL的动态连接库NETAPI32.DLL和NETUI1.DLL了。为了好管理,我们试着把这几个文件也全拷贝到了RPL目录下。
3、现在可以导入注册表项目了。因为上步的远程启动服务及管理等程序文件没有安装在系统目录中,必须修改注册表相关项目,因为RPLSVC.EXE安装到了RPL目录下,所以要把注册表项:
"ImagePath"="%SystemRoot%/system32/rplsvc.exe"
修改为 "ImagePath"="%SystemRoot%/rpl/rplsvc.exe"
如果我们是把Win2003系统目录安装到D盘的,是把RPL目录拷贝到 "D:/WINNT" 目录下面的,还必须把
"Directory"="C:/WINNT/RPL"
修改为: "Directory"="D:/WINNT/RPL"
导入该注册表文件后,重新启动服务器后,就发现远程启动服务已成功运行了。这样,远程启动服务就成功从Windows NT4.0上移植到了Win2003服务器上。
2.3 编写自动安装远程启动服务的程序
对于一般计算机用户来说,用手工方法在Win2003上安装远程启动服务,比较麻烦,容易出错。因此有必要编写一自动安装程序。我们用VC++6.0编程完成了这一RPL安装软件InstallRPL.exe。用户只需把有RPL文件的NT4.0安装光盘放入计算机光驱,或拷贝到计算机硬盘上,执行InstallRPL.exe即可实现安装。
软件在执行时,将自动探测NT4.0光盘的Clients/rpl和i386的目录;利用VC的getenv("windir"),就可以探测Win2003 Server的系统所在盘和Winnt目录,利用CopyFile(lpExistingFileName, lpNewFileName, bFailIfExists)等代码可以实现把RPL目录文件拷贝到系统的WinNT目录下。利用WinExec代码和Expand.exe程序,可以实现把i386下面的RPLSVC.EX_等文件,解压为RPLSVC.EXE等,并拷贝到RPL目录下。根据上面RPL等文件实际安装的目录路径,自动修改注册表需要的远程启动服务程序和RPL目录所在的路径。用RegOpenKeyEx、RegCreateKey及RegSetValueEx等代码可实现注册表信息的导入[5]。
另利用CoCreateInstance等代码,在桌面和程序组管理工具上创建远程启动管理程序RPLMGR.EXE的快捷方式,方便用户使用远程启动的管理程序。在Winnt/system32目录下,建立RPLCMD.BAT批命令文件,可自动调用Winnt/rpl目录下面的 RPLCMD.EXE 程序,方便用户使用RPLCMD命令登录网卡参数。安装完毕后,自动要求用户重新启动计算机,以使远程启动服务开始运行。
2.3 添加用于无盘引导的DLC等协议
RPL服务需要IPX协议、DLC协议和NetBEUI协议的支持,安装RPL前软件要自动探测系统是否已安装了这些协议,否则将自动提示用户添加这些协议,或自动安装。
可在Win2003 Server 版本中,微软已不在支持DLC和NetBEUI协议了,因此需要我们自己编写这两个协议的安装程序。实际上我们采用了上面介绍的RPL安装思路,同样实现了该协议的安装。该部分程序集成在上面的RPL安装程序中,若发现系统没安装这些程序,就自动把DLC和NetBEUI协议的驱动程序文件等解压到服务器上,修改注册表,实现协议的安装。
3 结束语
利用该技术已开发出稳定的RPL安装软件,已通过网站 http://www.zlocksoft.com 向用户提供下载服务。通过大量用户使用证明,该安装软件使用方便,安全可靠,实现了在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