|
从今年3月下旬开始正式制作基于XPSP3的PE(以下简称SP3PE,基于XPSP2的PE简称SP2PE),经过一个多月
的试用,对SP3PE的安全性和整体性能非常满意。下面就SP3PE相对于SP2PE的改进和制作SP3PE时遇到的几个问
题的解决办法两个方面谈一下个人看法:
一、SP3PE相对于SP2PE的改进
1. 集成SP2以来的各种补丁,并进行优化,系统的安全性、稳定性和运行效率都更好。
集成SP2以来的各种补丁,SP3PE的安全性肯定比SP2PE好就不用多说了。我制作的SP3PE与以前制作的SP2PE
功能相当,只是SP3PE比SP2PE大7MB左右,但是启动时SP3PE比SP2PE少用2~3MB内存(可用内存多出2~3MB),
启动速度快10秒左右(我制作的是办公型PE,核心文件300MB+,启动到桌面需要3分钟左右)。因此SP3PE比
SP2PE更加协调,运行效率更高。
2. 增加了Dot3svc、Eaphost、Mstsc等与Vista接轨的服务和程序
远程桌面连接客户端程序Mstsc的版本与VistaSP1一致。它的PEBuidler插件与SP2PE不同:
──────────────
[SourceDisksFiles]
; mstsc for xpsp3
lhmstsc.exe=2,mstsc.exe
lhmstscx.dll=2,mstscax.dll
; mui files
lhmstsc.mui=244,mstsc.exe.mui
lhmstscx.mui=244,mstscax.dll.mui
──────────────
SP3“本地连接”属性页中没有“验证”选项卡,但是系统增加了两个与802.1x相关的重要服务项目(共享
进程):Dot3svc、Eaphost。对无线的支持,SP3PE是不是强于SP2PE,我不使用无线,所以不清楚。
在PE中配置Dot3svc、Eaphost服务,使用下面的插件内容:
──────────────
; this plugin needed pppoe & wireless plugin support
[SourceDisksFiles]
dot3clnt.dll=2,dot3gpclnt.dll
l2store.dll=2,l2gpstore.dll
;for Eaphost config
lanPol.xsd=242,lan_policy_v1.xsd
lanv1.xsd=242,lan_profile_v1.xsd
wlan_bec.xsd=242,baseeapconnectionpropertiesv1.xsd
wlan_beu.xsd=242,baseeapuserpropertiesv1.xsd
wlan_bmc.xsd=242,BaseEapMethodConfig.xsd
wlan_bmu.xsd=242,BaseEapMethodUserCredentials.xsd
wlan_eco.xsd=242,EapCommon.xsd
wlan_ecp.xsd=242,eapconnectionpropertiesv1.xsd
wlan_ecu.xsd=242,eapuserpropertiesv1.xsd
wlan_ehc.xsd=242,EapHostConfig.xsd
wlan_ehu.xsd=242,EapHostUserCredentials.xsd
wlan_etc.xsd=242,EapTlsConnectionPropertiesV1.xsd
wlan_etu.xsd=242,EapTlsUserPropertiesV1.xsd
wlan_mcc.xsd=242,mschapv2connectionpropertiesv1.xsd
wlan_mcu.xsd=242,mschapv2userpropertiesv1.xsd
wlan_mpc.xsd=242,mspeapconnectionpropertiesv1.xsd
wlan_mpu.xsd=242,mspeapuserpropertiesv1.xsd
wlan_onx.xsd=242,OneX_v1.xsd
wlan_wlp.xsd=242,WLAN_profile_v1.xsd
[SetupReg.AddReg]
; for xpsp3
0x0,"ControlSet001\Services\Dot3svc"
0x7,"ControlSet001\Services\Dot3svc","DependOnService","Ndisuio","eaphost"
0x1,"ControlSet001\Services\Dot3svc","Description","此服务在以太网接口上执行 IEEE 802.1X 身份验证
"
0x1,"ControlSet001\Services\Dot3svc","DisplayName","Wired AutoConfig"
0x4,"ControlSet001\Services\Dot3svc","ErrorControl",0x1
0x2,"ControlSet001\Services\Dot3svc","ImagePath","%SystemRoot%\System32\svchost.exe -k dot3svc"
0x1,"ControlSet001\Services\Dot3svc","ObjectName","localSystem"
0x4,"ControlSet001\Services\Dot3svc","Type",0x20
0x4,"ControlSet001\Services\Dot3svc","Start",0x3
0x1,"ControlSet001\Services\Dot3svc","Group","TDI"
0x3,"ControlSet001\Services\Dot3svc","FailureActions",\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00
0x0,"ControlSet001\Services\Dot3svc\Parameters"
0x2,"ControlSet001\Services\Dot3svc\Parameters","ServiceDll","%SystemRoot%\System32\dot3svc.dll"
0x1,"ControlSet001\Services\Dot3svc\Parameters","ServiceMain","Dot3SvcMain"
0x4,"ControlSet001\Services\Dot3svc\Parameters","ServiceDllUnloadOnStop",0x1
0x0,"ControlSet001\Services\EapHost"
0x1,"ControlSet001\Services\EapHost","DisplayName","Extensible Authentication Protocol Service"
0x1,"ControlSet001\Services\EapHost","Description","向 Windows 客户端提供可扩展身份验证协议服务"
0x4,"ControlSet001\Services\EapHost","Type",0x20
0x4,"ControlSet001\Services\EapHost","Start",0x3
0x4,"ControlSet001\Services\EapHost","ErrorControl",0x1
0x2,"ControlSet001\Services\EapHost","ImagePath","%SystemRoot%\System32\svchost.exe -k eapsvcs"
0x7,"ControlSet001\Services\EapHost","DependOnService","RpcSs"
0x1,"ControlSet001\Services\EapHost","ObjectName","localSystem"
0x3,"ControlSet001\Services\EapHost","FailureActions",\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00
0x0,"ControlSet001\Services\EapHost\Parameters"
0x2,"ControlSet001\Services\EapHost\Parameters","ServiceDll","%SystemRoot%\System32\eapsvc.dll"
0x4,"ControlSet001\Services\EapHost\Parameters","ServiceDllUnloadOnStop",0x1
0x4,"ControlSet001\Services\EapHost\Parameters","PeerInstalled",0x1
0x0,"ControlSet001\Services\Eventlog\Application\Dot3Svc"
0x2,"ControlSet001\Services\Eventlog\Application\Dot3Svc","EventMessageFile","%SystemRoot%
\System32\dot3svc.dll"
0x4,"ControlSet001\Services\Eventlog\Application\Dot3Svc","TypesSupported",0x7
──────────────
其它的dot3*.*、eap*.*文件已经由PEBuilder提取,可别“精简”掉!
3. 脚本主机由5.6升级到5.7
看起来是小版本号调整,事实上这个改进很大,至少语言支持文件已经改变,采用mui文件。
──────────────
[SourceDisksFiles]
; mui files for wsh v5.7
cscript.mui=244,cscript.exe.mui
jscript.mui=244,jscript.dll.mui
msscript.mui=244,msscript.ocx.mui
scrobj.mui=244,scrobj.dll.mui
scrrun.mui=244,scrrun.dll.mui
vbscript.mui=244,vbscript.dll.mui
wscript.mui=244,wscript.exe.mui
wshext.mui=244,wshext.dll.mui
wshom.mui=244,wshom.ocx.mui
──────────────
4. 管理控制台MMC由2.0升级到3.0
虽然版本号有较大变化,但是改进较少,主要是增强了与.Net的容合,不用.Net的话,好像没有差别。
5. 经过多年,SP2所带的证书多数已经过期,而SP3所带的证书大都是新的。不太明白这些证书有什么用,
我想还是新的好。
6. IE增加实用工具——网络诊断
将下面一段加入你的PEBuilder插件中即可在IE中使用网络诊断。
──────────────
[SourceDisksFiles]
; Network Diagnostic for xpsp3
custsat.dll=241
xpnetdg.exe=241,xpnetdiag.exe
xpnetdg.xsl=241,xpnetdiag.xsl
──────────────
只需要添加相应的文件,不需要修改注册表,原因是PEBuilder生成SP3PE时已经加入了相关注册表信息。
有段时间,经常网路不通,一个星期可能用一两回网络诊断,这也是我制作SP3PE的动因之一,即希望在PE
下也能使用网络诊断。我在PE下使用过一次,它可以重新启动网卡,调整网络连接,并且完全成功。
7. XPSP3支持HDAudBus,无须寻找补丁。制作PE时将下面一段加入你的PEBuilder插件中即可。
──────────────
[SourceDisksFiles]
; for hdaudbus
hdaudbus.sys=4
hdaudbus.inf=20
──────────────
8. 命令行提示符窗口支持鼠标右键
这算不上改进,但是SP2PE命令行提示符窗口不支持鼠标右键,原因不明。
SP3PE相对于SP2PE还有一些改进,如数据库版本调整、增加XML6等等,就不细说了。
二、制作SP3PE时遇到的几个问题的解决办法:
1. 帮助文件(CHM)不能打开:
临时的解决办法是:使用Windows 2003 SP1的HHCTRL.OCX(版本:5.2.3790.1830)替换XPSP3中的
HHCTRL.OCX(版本:5.2.3790.4110)。使用XPSP2带的HHCTRL.OCX(版本:5.2.3790.1194)也可以(911CD论
坛上高人使用的方法)。
2. 进入桌面时显示“个人设置”窗口:
因为需要修改XPE插件,比较麻烦,所以这里只说明一下解决此问题的思路:
调整[HKLM\SOFTWARE\Microsoft\Active Setup]和[HKCU\Software\Microsoft\Active Setup]下的注册项
目。原则是:
(1) [HKLM\SOFTWARE\Microsoft\Active Setup](对应的注册表文件是software),PE中没有集成的组件
只保留Version、Locale键值。
(2) [HKCU\Software\Microsoft\Active Setup](对应的注册表文件是default),PE中没有集成的组件的
相关内容一律删除。
(注:在PE中,[HKEY_CURRENT_USER]、[HKEY_USERS\.DEFAULT]和[HKEY_USERS\S-1-5-18]三者完全一样,
调整其中一个,另外两个也会相应变化。)
3. 版本问题:
设置版本不只是为了在“系统”属性页中查看的,更重要的是要让运行于PE下的程序知道当前系统版本是
什么!因此修改SYSDM.CPL设置版本只是治标不治本的做法,正确的做法是使用下面的插件:
PEBuilder的插件目录下建一个Z_SP3文件夹,将下面一段保存为Z_SP3.INF(放到Z_SP3文件夹中)。
──────────────
[Version]
Signature= "$Windows NT$"
[PEBuilder]
Name="Z_SP3"
Enable=1
[Software.AddReg]
0x1, "Microsoft\Windows NT\CurrentVersion","ProductName","Microsoft Windows XP"
0x1, "Microsoft\Windows NT\CurrentVersion","CurrentVersion","5.1"
0x1, "Microsoft\Windows NT\CurrentVersion","CurrentBuildNumber","2600"
0x1, "Microsoft\Windows NT\CurrentVersion","CurrentBuild","1.511.1 () (Obsolete data - do not
use)"
0x1, "Microsoft\Windows NT\CurrentVersion","BuildLab","2600.xpsp.080413-2111"
0x1, "Microsoft\Windows NT\CurrentVersion","CSDVersion","Service Pack 3"
0x1, "Microsoft\Windows NT\CurrentVersion","SubVersionNumber",""
0x1,"Microsoft\Internet Explorer","Build","62900.5512"
0x4,"Microsoft\Internet Explorer","IntegratedBrowser", 0x00000001
;spoof internet explorer's presence
0x1,"Microsoft\Internet Explorer","Build","62900.5512"
0x1,"Microsoft\Internet Explorer","Version","6.0.2900.5512"
0x1,"Microsoft\Internet Explorer","W2KVersion","6.0.2900.5512"
0x1,"Microsoft\Windows\CurrentVersion\Internet Settings","MinorVersion",";SP3;"
[SetupReg.AddReg]
0x2, "ControlSet001\Control\Windows", "Directory", "%SystemRoot%"
0x4, "ControlSet001\Control\Windows", "ErrorMode", 0x00000000
0x4, "ControlSet001\Control\Windows", "NoInteractiveServices", 0x00000000
0x2, "ControlSet001\Control\Windows", "SystemDirectory", "%SystemRoot%\system32"
0x4, "ControlSet001\Control\Windows", "ShellErrorMode", 0x00000001
0x4, "ControlSet001\Control\Windows", "CSDVersion", 0x00000300
0x4, "ControlSet001\Control\Windows", "CSDReleaseType", 0x00000000
──────────────
就写这吧。
如果您看过此文,得到一些启发,制作出更加优秀的PE作品,这正是我的愿望。 |
|