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

实战Windows2000自动集成安装心得

楼层直达
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
引用


实战Windows2000自动集成安装心得
----hotdll
本集成安装2000的实例包括集成安装IE6.0SP1;DX8.1B,MP9.0(以及它们的最新补丁)以及SP4后到现在所有的HOTFIEXS。制作WINNT.SIF文件不在本文范围内。我只介绍制作WINNT.SIF文件要注意的地方和集成软件防止错误的一些技巧和经验;别的资料请参考别的文章。
首先建立$OEM$目录,下面是我的目录结构(仅供参考)
$oem$$oem$\CMDLines.txt
$oem$\InstDX8.bat
$oem$\INSTHFS.bat
$oem$\INSTIE6.bat
$oem$\$$$oem$\$$\system32$oem$\$1$oem$\$1\install
$oem$\$1\install\applications.cmd
$oem$\$1\install\Applications$oem$\$1\install\Hotfixes$oem$\$1\install\UPDATES$oem$\$1\install\UPDATES\directx$oem$\$1\install\UPDATES\IE6SP1
制作应答文件(请不要问我,去找精华区的帖子) winnt.sif,PRO和SRV版本的要各做各的,不通用。下面说下为什么我要这么安排我的文件。其实这也是我要说的核心----合理安排winnt.sif和CMDLines.txt这两个文件包含的集成程序。其中cmdlines.txt优先权比winnt.sif高,它在执行命令的时候是在2000安装快要结束的时候也就是注册组件和保存文件之间执行;并有一次重新启动的机会。Winnt.sfi文件是在2000安装好后快要进入桌面的时候执行,执行后自己不会重新启动。
下面是我的CMDLines.txt的内容
[Commands]
"cmd /c start /min cmd /c .\INSTDX8.bat"
"cmd /c start /min cmd /c .\INSTIE6.bat"
"cmd /c start /min cmd /c .\INSTHFS.bat"
这个是正确的命令。在许多精华帖子介绍CMDlines.txt文件配置的时候都错误了,我也走了这个弯路后来参考OEM光盘才明白怎么回事。下面是我的winnt.sif和applications.cmd文件的内容。
Winnt.sif for wpro
;SetupMgrTag
[Data]
AutoPartition=0
MsDosInitiated="0"
UnattendedInstall="Yes"

[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=Yes
TargetPath=\WINNT
Repartition=No

[GuiUnattended]
adminpassword=*
AutoLogon=Yes
AutoLogonCount=1
OEMSkipRegional=1
TimeZone=210
OemSkipWelcome=1

[UserData]
FullName=w00
OrgName=kexing
ComputerName=w00

[Display]
BitsPerPel=16
Xresolution=800
YResolution=600
Vrefresh=75

[LicenseFilePrintData]
AutoMode=PerServer
AutoUsers=100

[Identification]
JoinWorkgroup=WORKGROUP

[Networking]
InstallDefaultComponents=Yes

[GuiRunOnce]
%systemdrive%\install\applications.cmd

其中[GuiRunOnce]段的意思是自动执行我需要的.cmd文件。
下面是我的applications.cmd文件内容。
ECHO.
ECHO Installing WinRAR 3.15
ECHO Please wait...
start /wait %systemdrive%\install\Applications\winrar.exe /s
ECHO.
ECHO Installing Windows Media Player 9
ECHO Please wait...
start /wait %systemdrive%\install\Applications\MPSETUP.EXE /Q:A /R:N
ECHO.
ECHO Installing kb819639...
start /wait %systemdrive%\install\Applications\KB819639.exe /Q:A /R:N
ECHO.
ECHO Installing Q822925...
start /wait %systemdrive%\install\UPDATES\IE6SP1\q822925.exe /Q:A /R:N
ECHO.
ECHO Installing Q330994...
start /wait %systemdrive%\install\UPDATES\IE6SP1\q330994.exe /Q:A /R:N
ECHO.
ECHO 删除安装过程中的临时文件...
ECHO.
RD /S /Q %systemdrive%\install
ECHO.
exit
大家仔细看清楚。我不会为这些多费唇舌。然后我们从头到尾的看下就会明白我做了两个自动应答文件,一先一后。对了;我这么做的目的就是为了防止文件冲突。仔细分析我集成的文件---其中IE6.0SP1、DX8.1B、大部分的HOTFIEXS都是需要重新启动机器才能正常工作或是必须重新启动才能让机器正常工作,IE6.0和DX都是需要改写系统核心文件和注册表甚至系统内核的程序。而HOTFIEX文件也是与系统内核高度相关。所以如果必须在系统第一次安装注册组件的时候安装它们,这样经历一次重新启动后它们基本上都正常运行。象IE补丁,DX补丁,还有MP9.0等都是不需要重新启动就可以很好运行或是必须在IE完全安装好以后才能安装的顺利。所以我把他们放在了后面。其实诀窍就是一句话---合理安排集成安装的进程。
制作好$oem$和winnt.sif文件后,将他们分别复制到安装盘根目录,与I386并行,如果你是三合一的盘,就是复制它们到wpro、wsrv、asrv下面。然后烧成光盘。最后提醒下,集成自动安装生成的ISO文件最好不要用虚拟软件测试,因为有些问题是虚拟测试造成的,但是事实上却没哪个问题。建议烧制到CD-RW上测试。
全文完。
附带常用系统变量
%systemdrive% 系统盘根目录一般是C:
$OEM$\$1 \$1 子文件夹映射到 %systemdrive%,一般是c:
"%systemroot% WINDOWS安装根目录一般是c:\winnt

%windir% 等同于%systemroot% 系统安装根目录一般是C:\winnt

$OEM$\$$ $$子目录等同于%systemroot%或者%windir%指定的路径

(一般是c:\Winnt——这里假定Windows2000安装在C盘),

比如$OEM$\$$\System32下的所有文件都会被拷贝

到%windir%\System32目录下。

%cdrom% 光区盘符:
%ramdrive% 虚拟磁盘
 
我们一直在努力!
级别: 光盘中级
发帖
1019
飞翔币
746
威望
834
飞扬币
10249
信誉值
0

只看该作者 1 发表于: 2006-05-31
好!但是偶的水平有限,不是很懂啊!
z3960 
级别: 茶馆馆主
发帖
770868
飞翔币
207694
威望
215657
飞扬币
2511641
信誉值
8

只看该作者 2 发表于: 2023-02-03
进来回忆2000系统
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。