社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 697阅读
  • 0回复

[分享]xp安装版在T13分钟整合软件方法

楼层直达
z3960 
级别: FLY版主
发帖
795964
飞翔币
213239
威望
215737
飞扬币
2674978
信誉值
8

xp安装版在T13分钟整合软件方法
只要两个条件就能自如的在T13分整合你要的东西。比如整合1.exe,
============================
第一,在i386\\SVCPACK文件夹里面放入你想在T13时间段要运行的东西1.exe;
第二,i386文件夹下SVCPACK.in_,里面的SVCPACK.inf全部内容改成如下:
[Version]
Signature=\"$Windows NT$\"
MajorVersion=5
MinorVersion=1
BuildNumber=2600
[SetupData]
CatalogSubDir=\"\\i386\\SVCPACK\"
[ProductCatalogsToInstall]
[SetupHotfixesToRun]
1.exe

-----------------------------------------------------------
红色就是要注意的关键字了
这个exe有参数的话如有(/s),当然可以写成:1.exe /s 了。

又有人问那不是又要找工具把这个SVCPACK.inf压回SVCPACK.in_形式?那样不是反而麻烦?
当然不必。系统自带有压缩的命令啊。新建一个bat或CMD文件,里面写上:
@echo off
makecab svcpack.inf
echo svcpack.inf压缩完成,按任意键退出。
pause >nul
写完后这个bat文件和要压缩的SVCPACK.inf文件放在同个地方,双击运行这个bat,不就能压了嘛。
难吗,不难吧,就是上面两个条件就OK了哦。
---------------------------------------------------------------------------------
安装版系统如何调用驱动选择工具的办法终得解决
装版系统如何调用驱动选择工具的办法终得解决!(转贴分享)首先,倒数39分钟是在WINNT.SIF文件的[GuiUnattended]段的DetachedProgram 设置项实现的,如:DetachedProgram = \"%SystemDrive%\\TEMP\\DRIVERS.EXE\"
但是39分钟执行的程序是同步执行的,也就是说你执行的时候系统安装进程还在前进,这样是不行的,等你解压完驱动就晚了,所以我们需要下载下面几个文件:
NirCmd.exe 一种增强的DOS命令行工具
Process.exe 一种很强的进程管理程序,其中一个功能就是暂停某进程执行(相信知道在这里的用处了吧)
WatchDriverSigningPolicy.exe 关闭微软安装未通过验证的驱动时的提示
SetupCopyOEMInf.exe 扫描指定的驱动目录,并处理所有的.inf文件(复制指定的.inf文件到%windir%\\Inf中),这样,Windows在检查硬件设备后将会找到所有的即插即用硬件的
驱动程序。
这几个有了以后就用一个批处理编写一段命令,过程就是先停止XP安装进程setup.exe,然后执行驱动选择、解压驱动,完毕后继续setup.exe安装进程就行了。
下面是我写的au3脚本:
Driver.exe是驱动选择工具,这段代码编译后的程序和驱动选择放在一个文件夹下就行了。
如果调用ylmf的驱动,还在在批处理或者au3代码里增加几行,下面是我的完整的调用ylmf驱动的au3代码:
我只希望给有用的人看,我相信看了有用的人,不在乎回帖这么简单的动作!

代码:
#NoTrayIcon
$file = FileOpen(@HomeDrive & \"\\Ticker.ncl\", 2)
FileWriteLine ( $file, \"exec hide \" & @ScriptDir & \"\\Process.exe -r
setup.exe\")
FileWriteLine ( $file, \".wait 10000 \")
FileWriteLine (
$file, \"exec hide \" & @ScriptDir & \"\\Process.exe -p SetupCopyOEMInf.exe
high\")
FileWriteLine ( $file, \"exec hide \" & @ScriptDir &
\"\\Process.exe -s setup.exe\")
FileWriteLine ( $file, \".wait 50000 \")
FileWriteLine ( $file, \".script \" & @HomeDrive & \"\\Ticker.ncl\")
FileClose($file)
runwait(@ScriptDir & \"\\Process.exe -s
setup.exe\",\"\",@SW_HIDE)
runwait(@ScriptDir & \"\\Process.exe -p setup.exe
low\",\"\",@SW_HIDE)
run(@ScriptDir &
\"\\WatchDriverSigningPolicy.exe\",\"\",@SW_HIDE)
$file = FileOpen(@SystemDir
& \"\\oeminfo.ini\", 2)
FileWriteLine ( $file,\"Manufacturer=YLMF
GHOSTXP_SP2\")
FileClose($file)
runwait(@ScriptDir & \"\\Driver.exe\")
run(@ScriptDir & \"\\NirCmd.exe script \" & @HomeDrive &
\"\\Ticker.ncl\")
runwait(@ScriptDir & \"\\SetupCopyOEMInf.exe
C:\\Driver\",\"\",@SW_HIDE)
runwait(@ScriptDir & \"\\Process.exe -k
NirCmd.exe\",\"\",@SW_HIDE)
runwait(@ScriptDir & \"\\Process.exe -p setup.exe
normal\",\"\",@SW_HIDE)
runwait(@ScriptDir & \"\\Process.exe -r
setup.exe\",\"\",@SW_HIDE)
FileDelete(@HomeDrive & \"\\Ticker.ncl\")
FileDelete(@SystemDir & \"\\oeminfo.ini\")
==============================================================================================
安装版本集成驱动的方法
1、请在i386文件夹下新建winnt.sif文本文档,如已经有则略过此步
2、请在winnt.sif中添加如下内容,如已存在“[Unattended]”段,则只在该段下添加相应内容即可
[Unattended]
OemPreinstall="Yes"
OemPnpDriversPath=""
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore
3、可以将下载的驱动包改一个方便书写的名字,例如我将“DrvS2.0Beta+SKXPDRV8.08”改名为“SkyDrv”
4、在与i386目录同层下建立$OEM$文件夹,并在该文件夹下建立$1文件夹,随后将“SkyDrv”文件夹复制如其中,即:$OEM$\$1\“SkyDrv”,也就是说我们要将“SkyDrv”在文本安装阶段结束后自动复制到系统盘根目录下
5、下载的驱动包中包含一个文本文档,名为如“8.08DrvPath(用于安装版).txt”,打开后有很长的驱动路径,将这个驱动路径写入到“OemPnpDriversPath=""”中,例如
OemPnpDriversPath="D\Board;D\Board\Chipset........"
这里的D是一个文件夹,而不是指的D盘,由于驱动路径过长会造成文本安装阶段结束时蓝屏的问题,所以这里本程序用于安装版时会强制设定驱动路径为系统盘根目录下D文件夹,以缩短驱动总路径
6、可以在winnt.sif的[GUIRunOnce]的段下添加:
[GUIRunOnce]
Command0="cmd /c rd /s /q %systemdrive%\SkyDrv"
或在[SetupParams]段下添加:
[SetupParams]
UserExecute="cmd /c rd /s /q %systemdrive%\SkyDrv"
以在首次登陆系统或剩余9分钟时删除驱动压缩包(注意,不是解压的驱动文件,解压的驱动文件可以调用内置的驱动删除程序进行删除),以不造成残留
7、上述做完后,请在winnt.sif中添加最关键的段与键:
[GuiUnattended]
DetachedProgram="%systemdrive%\SkyDrv\DrvS_2.0.exe"
这样将会在剩余39分钟时自动调用本驱动解压程序
流程简析:
其实以上工作,就是将驱动压缩包想办法复制到某确定的位置,将驱动路径导入注册表,并调用本驱动选择解压程序。而安装版调用驱动选择解压程序有两大难题:
1、剩余39分钟(T39)时的不等待调用,也就是说T39时调用驱动选择解压程序是不等待它运行完的,这经常会造成在配置较高的机器中驱动未解压完毕就已经执行T37的驱动搜索了。为解决这个难题,DRVS2.0自带进程暂停/恢复功能,如检测到是在T39时调用,会自动将系统安装进程暂停,随后解压驱动,驱动解压完成后会自动恢复系统安装进程
2、驱动注册表的导入,已经有很多人多方面测试并已经体会到了这个问题,即T39后的任何时机导入的驱动注册表路径键值,在整个系统安装过程中是无效的 ——至少就我目前的水平来看是这样的。DPS导入驱动路径是使用了虚假的系统安装程序,以造成在T39前也就是系统安装过程开始前即生成并导入驱动这侧表路径键值。但我们没必要也这样做。指所以使用OemPnpDriversPath=""来完成驱动路径导入工作原因有二:
(1)这是微软提供的,理论上说没有比这个再稳定的了
(2)OemPnpDriversPath=""导入驱动注册表路径,据我个人的观察应该是在文本安装阶段完成后,如果这个结论是正确的,那这个几乎是无敌稳定的。只是驱动注册表路径不可过长,超过一定长度会直接造成文本安装阶段结束后蓝屏,这个长度是多少我也说不定,大概是10K左右,或许还要再大一点。这个是与系统部署环境截然不同的。
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。