|
2010年12月14日
公布了一个参考PE供各位参考:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183329&page=1&extra=page%3D1
更新内容及部分说明:
1,将以前的NETX.CMD和NETX.INI完美的合二为一了,大家可以将这个技巧用在其他地方,这样PECMD的INI能够方便地实现自我加载,还减少了一个文件,呵呵,觉得听方便的。要注意的地方就是CMD的EXIT命令不能另起一行,要跟在前面的命令后面。而且要保证CMD命令的最后一定要成功退出,不然会报错,不过对结果没什么影响。
2,加入了pseudo 的在通知区域显示图标的功能。
其中
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f
出自psendo的原创
IPCONFIG >nul是在H3的PE里发现的技巧,大大加快了找到SHOWICON键值的速度,但是如果网络加载快的话,还是有注册不到SHOWICON的现象,于是本人进行了改进如下:
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
目的是达到了,不过本人是DOS菜鸟,应该会有精简些的写法,希望pseudo等DOS批处理高手帮忙改进一下,谢谢!
3,去掉了一些重复启动的服务,因为在网络安装时那些服务已经自动启动了,没必要多此一举。
4,关于IE部分DLL的注册,要参照自己的核心来定,我现在的核心都不用注册了,写在这里的是因为觉得这几个比较重要,作个备忘。
5,这里去除了一些小动作,主要是核心优化了,速度比以前更快了,包括加载显卡,声卡,以及注册DLL的速度,都能提高一倍以上的速度
6,核心主要作的更改是:
a,启动CryptSrv
b,注册 initpki.dll
c,将声卡的两个服务改成手动
d,将其它启动时不可能启动的服务改成手动或禁止
等,其它的记不起来了:)
**关于showicon段再作点解释
在我的测试过程中,不加延时的话,在虚拟机中和实机CPU主频在1g左右的机型,一般可以直接注册到SHOWICON键值,但是在我的实机测试中,基本上2秒钟不到所有的网络命令都已经执行完毕了,大概还必须等待1秒钟左右的时间才能才能注册到SHOWICON键值,所以只能够被动等待,如果简单在前面加个延时2秒,对机型慢的又是无谓的浪费时间,因为机型慢的根本不需要等待时间
我的这段命令的运行的过程是:首先延时0.5秒,然后注册SHOWICON,不成功,再次延时0.5秒,再次注册SHOWICON, ……如此反复,如果5次都没注册上,那基本肯定是网卡没装上。为了避免死循环,第5次过后它就会自动退出这个循环状态。而其中任何一次注册成功的话,都会自动跳出这个循环,这样就照顾了慢的,也兼顾了快的
我测试的结果是,一般启用网络(其中包括自动获取IP地址的时间)需要4,5秒钟及以上的机型,确实不需要任何等待时间的
**12月9日更新部分注释:
1,MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%"
;是属于技巧性的处理动作,没什么特别含义,是为了后面的“LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE”在快速启动栏显示IE快捷方式,不用KILL EXPLORER就能及时可用.
2,Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI
;也是技巧性的处理动作,是为了不用刷新桌面,就能及时显示网上邻居的图标,命名为INI文件,是怕别的程序调用它,里面只有简单的几句话:
[version]
Signature="$Windows NT$"
[Install]
AddReg=Add.Reg
[Add.Reg]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu","{208D2C60-3AEA-1069-A2D7-08002B30309D}",0x00010001,0
3,LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
;小细节,完全可以这么用,好像没什么人注意到这个细节,变成另外增加了一个批处理
4,..\7z.exe x NET\NET_PART.7z -y -aos -o"%SystemRoot%" >nul
; >nul 在这里非常有用,特别是解压数量比较多的小文件时,能大大缩短解压时间
@ECHO OFF
PUSHD %~dp0
IF /I "%1"=="" PECMD LOAD NETX.CMD
IF /I "%1"=="IE6" MD %TEMP%\IE6 &MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%" &PECMD LOAD NETX.CMD
IF /I "%1"=="WLAN" MD %TEMP%\WLAN &PECMD LOAD NETX.CMD
IF /I "%1"=="PPPOE" MD %TEMP%\PPPOE &PECMD LOAD NETX.CMD
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
:NEXT
MD %SystemRoot%\LANOK &NET USER Guest /active:yes >nul &NET USER Guest /passwordreq:no >nul &Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI
:END
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1 &PECMD FILE %TEMP%\* &EXIT
``
_SUB LAN
TEXT 正在启用网络支持,请稍候 …… L80 T50
EXEC =!7z.exe x NET_PART.7z -y -aos -o"%SystemRoot%"
IFEX %TEMP%\WLAN,DEVI DRV_WLAN.CAB!DEVI DRV_LAN.CAB
`EXEC InfCacheBuild.exe %SystemRoot%
UPNP -pnp -cn WINPE -wg WORKGROUP
UPNP -c p -i MS_TCPIP
UPNP -c c -i MS_MSCLIENT
UPNP -c s -i MS_SERVER
SERV Dhcp
SERV Lanmanserver
`SERV LmHosts
IFEX %TEMP%\WLAN,CALL WLAN
KILL EXPLORER.EXE
_END
_SUB WLAN
SERV EventLog
UPNP -v -c p -i MS_NDISUIO
UPNP -v -c s -i MS_WZCSVC
SERV WZCSVC
_END
_SUB IE6
EXEC =!7z.exe x IE6.7z -y -aos -o"%SystemRoot%"
LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE
FONT %SystemRoot%\FONTS
EXEC REGSVR32 /S /N /I INETCPL.CPL
TEAM CALL $MSHTML.DLL|CALL $MSHTMLED.DLL|CALL $INETCOMM.DLL|CALL $HHCTRL.OCX `|CALL $Flash.ocx
EXEC =Rundll32 SetupAPI.dll,InstallHinfSection DefaultInstall 132 %SystemRoot%\IE6\IE.INF
EXEC IEXPLORE.EXE
_END
_SUB PPPOE
EXEC =!7z.exe x NET_PPPOE.7z -y -aos -o"%SystemRoot%"
UPNP -c p -i MS_L2TP
UPNP -c p -i MS_PPTP
UPNP -c p -i MS_PPPOE
EXEC %SystemRoot%\SYSTEM32\RASPHONE.PBK
UPNP -c p -i MS_WANARP
UPNP -c p -i MS_NDISWAN
UPNP -c s -i MS_RASCLI
UPNP -c s -i MS_RASSRV
UPNP -c s -i MS_RASMAN
UPNP -c s -i MS_STEELHEAD
SERV TAPISRV
SERV RASMAN
LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
LINK %Desktop%\宽带连接,RASPHONE.PBK
_END
``
//NET安装程序开始
IFEX %SystemRoot%\LANOK,IFEX %TEMP%\WLAN,CALL LAN!CALL LAN
IFEX %TEMP%\PPPOE,CALL PPPOE
IFEX %TEMP%\IE6,CALL IE6
//NET安装程序结束
囧,发现问题了,主要是这个命令好久没用,可能后来把它改错了,现在改正了
怕COPY有错,还是加个附件吧
NETX.7z
(1.22 KB, 下载次数: 174)
*********************************************************************
还是再发个自用的全CMD快速启用网络的命令吧,系统中要增加一个SC.EXE的小文件,这个是官方的,正常系统中有
@ECHO OFF
PUSHD %~dp0
IF /I "%1"=="IE6" MOVE "%Desktop%\Internet Explorer.LNK" "%QuickLaunch%" &If Exist %SystemRoot%\LANOK GOTO IE6
IF /I "%1"=="PPPOE" If Exist %SystemRoot%\LANOK GOTO PPPOE
PECMD TEXT 正在启用网络支持,请稍候 …… L80 T50
..\7z.exe x NET\NET_PART.7z -y -aos -o"%SystemRoot%" >nul
IF /I "%1"=="WLAN" (PECMD DEVI NET\DRV_WLAN.CAB) ELSE PECMD DEVI NET\DRV_LAN.CAB
PECMD UPNP -pnp -cn WINPE -wg WORKGROUP
PECMD UPNP -c p -i MS_TCPIP
PECMD UPNP -c c -i MS_MSCLIENT
PECMD UPNP -c s -i MS_SERVER
SC START Dhcp >nul
SC START Lanmanserver >nul
rem SC START LmHosts >nul
IF /I "%1"=="WLAN" SC START EventLog >nul &PECMD UPNP -v -c p -i MS_NDISUIO &&PECMD UPNP -v -c s -i MS_WZCSVC &&SC START WZCSVC >nul
PECMD KILL EXPLORER.EXE
:ShowIcon
IPCONFIG >nul &&PECMD WAIT 500
FOR /F %%i IN ('@reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" /s^|find /i "Connection"') DO >nul REG ADD %%i /v ShowIcon /t REG_DWORD /d 1 /f &&GOTO NEXT
MD %TEMP%\1 &&GOTO ShowIcon &MD %TEMP%\2 &&GOTO ShowIcon &MD %TEMP%\3 &&GOTO ShowIcon &MD %TEMP%\4 &&GOTO ShowIcon &MD %TEMP%\5 &&GOTO ShowIcon &GOTO END
:NEXT
MD %SystemRoot%\LANOK &NET USER Guest /active:yes >nul &NET USER Guest /passwordreq:no >nul &(IF /I "%1"=="IE6" GOTO IE6) &(IF /I "%1"=="PPPOE" GOTO PPPOE)
Rundll32 SetupAPI,InstallHinfSection Install 128 %SystemRoot%\INF\NETICON.INI &GOTO END
:IE6
..\7z.exe x NET\IE6.7z -y -aos -o"%SystemRoot%" >nul
PECMD FONT %SystemRoot%\FONTS
PECMD LINK %QuickLaunch%\Internet Explorer,%SystemRoot%\IE6\IEXPLORE.EXE
REGSVR32 /S /N /I INETCPL.CPL
FOR %%i IN (MSHTML.DLL MSHTMLED.DLL INETCOMM.DLL HHCTRL.OCX) DO REGSVR32 /S %%i
Rundll32 SetupAPI.dll,InstallHinfSection DefaultInstall 132 %SystemRoot%\IE6\IE.INF
START IExplore.EXE &GOTO END
:PPPOE
..\7z.exe x NET\NET_PPPOE.7z -y -aos -o"%SystemRoot%" >nul
PECMD UPNP -c p -i MS_L2TP
PECMD UPNP -c p -i MS_PPTP
PECMD UPNP -c p -i MS_PPPOE
START %SystemRoot%\SYSTEM32\RASPHONE.PBK
PECMD UPNP -c p -i MS_WANARP
PECMD UPNP -c p -i MS_NDISWAN
PECMD UPNP -c s -i MS_RASCLI
PECMD UPNP -c s -i MS_RASSRV
PECMD UPNP -c s -i MS_RASMAN
PECMD UPNP -c s -i MS_STEELHEAD
SC START TAPISRV >nul
SC START RASMAN >nul
PECMD LINK %Desktop%\宽带断开,RASDIAL.EXE,我的连接 /D,NETSHELL.DLL#17
PECMD LINK %Desktop%\宽带连接,RASPHONE.PBK
:END
DEL /Q %SystemRoot%\INF\*.PNF %SystemRoot%\INF\INFCACHE.1
PECMD FILE %TEMP%\* &EXIT
全批处理,跟上面的加载方式速度基本没差别,但是要参照我的写法才行
启用网络.7z
(1.16 KB, 下载次数: 241)
[ 本帖最后由 yh_tl 于 2010-12-14 20:22 编辑 ] |
评分
-
查看全部评分
|