101.81 KB, 下载次数: 105, 下载积分: 无忧币 -2
原帖由 lxl1638 于 2009-7-14 17:37 发表
在PECMD脚本中,本人一直反对调用CMD或BAT批处理,原因就是执行效率低。
如修改注册表、启动/停止服务、注册DLL/OCX、建立快捷方式等,PECMD绝对比CMD批处理快。
原因是批处理中每执行一项任务就要启动一 ...
未命名.jpg (14.75 KB, 下载次数: 123)
@echo off
echo 正在加载网络,请稍候
cd /d %systemroot%\system
if /i "%1"=="ALL" goto other
pushd %ProgramFiles%\opera
IF EXIST flash.exe start /min /b flash.exe
popd
CLS
ECHO.
ECHO.
ECHO 复制必要文件...
ECHO.
ECHO.
COPY %SystemRoot%\SYSTEM\Drivers\*.* %SystemRoot%\SYSTEM32\Drivers >nul 2>nul
if not exist %SystemRoot%\INF MD %SystemRoot%\INF\ >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\INF\*.* %SystemRoot%\INF >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETCFGX.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETSHELL.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NETMAN.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\MSWSOCK.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\TAPISRV.DLL %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\NET1.EXE %SystemRoot%\SYSTEM32 >nul 2>nul
cls
ECHO.
ECHO.
ECHO 提取驱动程序...
ECHO.
ECHO.
FOR /F %%i IN ('Dir /B /A-D ^".\DRIVERS_NET.CAB^"') DO PECMD DEVI ".\%%i"
START /Wait .\InfCacheBuild.exe %SystemRoot%
PECMD UPNP -pnp
cls
ECHO.
ECHO.
ECHO 安装网络组件...
ECHO.
ECHO.
for %%i in (ACTXPRXY.DLL,NETCFGX.DLL,NETSHELL.DLL,MLANG.DLL) do REGSVR32 /s %%i
::REGSVR32 /s JSCRIPT.DLL
PECMD UPNP -c p -i MS_TCPIP
PECMD UPNP -c c -i MS_MSCLIENT
PECMD UPNP -c s -i MS_SERVER
PECMD UPNP -c s -i MS_RASCLI
PECMD UPNP -c s -i MS_RASSRV
PECMD UPNP -c s -i MS_STEELHEAD
cls
ECHO.
ECHO.
ECHO 启动网络服务...
ECHO.
ECHO.
SET K=HKLM\SYSTEM\CurrentControlSet\Services&&SET W=AutoShareServer&&SET S=AutoShareWks
REG ADD %K%\Lanmanserver\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\Lanmanserver\parameters /v %W% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %S% /t REG_DWORD /d 0 /f
REG ADD %K%\lanmanworkstation\parameters /v %W% /t REG_DWORD /d 0 /f
REG ADD "HKLM\SOFTWARE\Microsoft\Driver Signing" /f /v "Policy" /t REG_BINARY /d 00
PECMD SERV TCPIP
PECMD SERV DHCP
PECMD SERV NLA
PECMD SERV LMHOSTS
::PECMD SERV SERVER
PECMD UPNP -pnp -cn WinPE -wg WORKGROUP
cls
ECHO.
ECHO.
ECHO 删除无用文件并创建快捷链接...
ECHO.
ECHO.
DEL /Q %WinDir%\INF\*.PNF %WinDir%\INF\INFCACHE.1 >nul
PECMD IFEX %ProgramFiles%\TM2008\Bin\TM.exe,LINK %Desktop%\TM2008,%ProgramFiles%\TM2008\Bin\TM.exe
PECMD IFEX %ProgramFiles%\opera\operausb.exe,LINK %Desktop%\opera浏览器,%ProgramFiles%\opera\operausb.exe
::PECMD LINK !%Desktop%\硬盘QQ,%SystemRoot%\system\QQ\QQ.CMD,,%SystemRoot%\SYSTEM\QQ\QQ.ICO
PECMD LINK %Desktop%\PENETCFG网络设置,%SystemRoot%\System\PENETCFG.exe
PECMD LINK !%Desktop%\启用无线和PPPOE支持,%SystemRoot%\System\START_NET.CMD,ALL,%SystemRoot%\SYSTEM\NET_PART.ICO
PECMD LINK !%Programs%\网络工具\启用无线和PPPOE支持,%SystemRoot%\System\START_NET.CMD,ALL,%SystemRoot%\SYSTEM\NET_PART.ICO
PECMD LINK %Programs%\网络工具\PENETCFG网络设置,%SystemRoot%\System\PENETCFG.exe
PECMD LINK %Programs%\网络工具\远程协助,%SystemRoot%\System\网络工具\TTVNC.EXE
PECMD LINK %Programs%\网络工具\http file server,%SystemRoot%\System\网络工具\hfs2.exe
PECMD LINK %Programs%\网络工具\MAC扫描,%SystemRoot%\System\网络工具\MAC扫描.EXE
PECMD LINK %Programs%\网络工具\局域网查看器,%SystemRoot%\System\网络工具\LANSEEV1.59.EXE
PECMD LINK %Programs%\网络工具\飞鸽传书,%SystemRoot%\System\网络工具\IPMSG.EXE
PECMD LINK %Programs%\网络工具\远程登陆工具,%SystemRoot%\System\网络工具\PUTTY.EXE
If Exist "%USERPROFILE%\桌面\启用网卡支持.LNK" DEL "%USERPROFILE%\桌面\启用网卡支持.LNK"
REGSVR32 /s %windir%\system32\stobject.dll
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
PECMD FIND flash.exe,KILL flash.exe
EXIT
:other
CLS
ECHO.
ECHO.
ECHO 安装无线网络组件...
ECHO.
ECHO.
COPY /y %SystemRoot%\SYSTEM\RASPHONE.EXE %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\RASPHONE.PBK %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\wzcsvc.dll %SystemRoot%\SYSTEM32 >nul 2>nul
COPY /y %SystemRoot%\SYSTEM\wzcsapi.dll %SystemRoot%\SYSTEM32 >nul 2>nul
FOR /F %%i IN ('Dir /B /A-D ^".\DRIVERS_NET_WIRELESS.CAB^"') DO PECMD DEVI ".\%%i"
START /Wait .\InfCacheBuild.exe %SystemRoot%
PECMD UPNP -pnp
for %%i in (wzcsapi.dll,wzcsvc.dll,rsaenh.dll) do REGSVR32 /s %%i
PECMD UPNP -v -c p -i MS_NDISUIO
PECMD UPNP -v -c s -i MS_WZCSVC
PECMD SERV EVENTLOG
PECMD SERV WZCSVC
cls
ECHO.
ECHO.
ECHO 启动PPPOE服务...
ECHO.
ECHO.
REGSVR32 /s NETMAN.DLL
PECMD UPNP -c p -i MS_L2TP
PECMD UPNP -c p -i MS_PPTP
PECMD UPNP -c p -i MS_PPPOE
PECMD UPNP -c s -i MS_RASMAN
PECMD UPNP -c p -i MS_WANARP
PECMD UPNP -c p -i MS_NDISWAN
PECMD SERV TAPISRV
PECMD SERV NETMAN
PECMD SERV RASMAN
::START RASPHONE.EXE -F %SystemRoot%\System32\RASPHONE.PBK -D 宽带连接
PECMD LINK !%Desktop%\挂断ADSL,%SystemRoot%\System\HANGUP.CMD,,HANGUP.ICO
PECMD LINK %Desktop%\ADSL宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK,,RASPHONE.EXE
PECMD LINK %Programs%\网络工具\ADSL 宽带连接,%SystemRoot%\SYSTEM32\RASPHONE.PBK,,RASPHONE.EXE
PECMD LINK !%Programs%\网络工具\挂断ADSL,%SystemRoot%\System\HANGUP.CMD,,HANGUP.ICO
If Exist "%USERPROFILE%\桌面\启用无线和PPPOE支持.LNK" DEL "%USERPROFILE%\桌面\启用无线和PPPOE支持.LNK"
PECMD FIND EXPLORER.EXE,KILL EXPLORER.EXE
EXIT
原帖由 lrbin50 于 2009-7-15 13:16 发表
*感谢台湾朋友 jzdai0903 的指点,将SERV SERVER 改成 SERV lanmanserver,网络共享也正常了
我的用SERV SERVER共享正常啊。
原帖由 yh_tl 于 2009-7-16 09:01 发表
预告:核心加速也获得几个重大突破,本人的核心在本人的虚拟机中由原来老式加载方法的19秒,现在已经接近10秒(标准启动,全部MMC工具和本人的一个6.3M大小的压缩工具包全部解压到X盘,和加载全部其他工具的快捷 ...
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...
原帖由 neo4026 于 2009-7-16 09:13 发表
PENETCFG其实跟你采用的方式一样
进程自己做了相当于bartpe -i -c -s那一大堆服务处理的东西
不过服务的开启是单线程的 所以会稍慢 但也比版内的PE腰快(程序要检测是否有服务开启出错 出错了就终止运行)
原帖由 66369 于 2009-7-16 09:29 发表
可能有个度的问题.
先把IE加载好.而后....
立即上网....你接不通的....需等下.
说明服务.驱动的加载.随机器不同.有一个硬过程.
看到的5秒.是程序执行的窗口显示时间.后台的时间难估计的.
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...
原帖由 NicTense 于 2009-7-16 11:28 发表
如果我没理解错的话
#1,应该是当dll文件已经安装的时候
而u代表反安装
所以这个命令按道理应该是反安装(或者应该称为注册)shell32.dll文件
不明白为什么要这么做,但是想不通跟快速启动的显示桌面有什么关系,按道理显示桌面相关的东西应该在explorer.exe里面的...
原帖由 yh_tl 于 2009-7-16 09:11 发表
这里还有一个问题向大家请问一下:
这句
`EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
具体作用到底干什么用的,我发现使用
CALL $SHELL32.DLL,DllInstall,#1,U
的时候其实系统是报错的,我怀疑以前也 ...
原帖由 mapeimapei 于 2009-7-22 11:19 发表
CALL $SHELL32.DLL,DllInstall,#1,U 找不到元素。
但是不执行的话快速启动栏式没有“显示桌面”的。
原帖由 yh_tl 于 2009-7-14 15:18 发表
...
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的原创,但是如果网络加载快的话,就不能找到SHOWICON键值
其中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批处理高手帮忙改进一下,谢谢!
...
原帖由 pseudo 于 2010-12-8 19:05 发表
ipconfig在0pe中是这样用的
::连接后在通知区域显示图标
IF /I "%1"=="ALL" ipconfig
IF /I "%1"=="ALL" FOR /F %%i IN ('@reg qu ...
原帖由 hhh333 于 2010-12-8 22:11 发表
这个IPCONFIG确实是我加上去的,以前就碰到这个键值找不到,但这个比较诡异,进系统以后如果点开始菜单在网络那里停一下,这个键值也会出来。所以有时候觉得语句没错,就是找不到,用一下开始时菜单又可以找到了 ...
欢迎光临 无忧启动论坛 (http://wuyou.net/) | Powered by Discuz! X3.3 |