首页 > 代码库 > $OEM$文件夹的使用 (By无约而来)

$OEM$文件夹的使用 (By无约而来)

WIN7-OEM资料包中的目录都是以$OEM$文件夹出现的。比$OEM$高一级的目录,我通常是用来表示下一级的$OEM$的属性,例如,X64_ADMIN_LOADER表示此目录下的$OEM$文件夹是用于可以支持“64位WIN7自动激活、OEM识别、启用内置管理员”。

虽然这里是以WIN7-OEM资料包来举例说明的,但$OEM$文件夹的基本知识差不多就这样。

(WIN7-OEM资料包下载:http://zxkh19501.blog.163.com/blog/static/123785179201361410570339/)

 

支持的安装方式

安装系统过程中,如果安装光盘的sources目录中存在$OEM$文件夹,那么$OEM$文件夹中的特定目录的内容,在install.wim的卷映像展开和复制阶段之后,被安装程序复制到指定的目录。这里讲的是官方的安装方式,光盘启动,或其他方式启动后运行安装光盘中的setup.exe。

至于第三方安装器,是否支持sources目录中$OEM$文件夹复制,我就不知道了,以前我使用IMAGEX命令安装系统一般都会加上两行复制$OEM$文件夹的命令。如:

XCOPY .\sources\$OEM$\$$ %PART%:\windows /E /Y
XCOPY .\sources\$OEM$\$1 %PART%:\ /E /Y

(%PART%是目标分区,相对路径)

 

目录格式

$OEM$下一级目录是“$$”和“$1”,必须是这两个固定的命名。

 

复制路径

$$目录下的内容将被复制到安装目标分区的windows目录下,$1中的内容将被复制到安装目标分区的根目录。

例如,将系统安装到C分区。$$目录下的文件或文件夹将被安装程序复制到C:\windows目录中,$1中的文件或文件夹将被复制到C盘根目录下。

$$----------------->C:\windows
$1----------------->C:\

如果$$目录中有一个setup的文件夹,那么系统安装时,setup文件夹(包括此文件夹下的文件与子文件夹)将被复制到C:\windows中。

$$\setup----------------->C:\windows\setup

如果$1目录下有一个DRV的文件夹,那么系统安装时,DRV文件夹(包括此文件夹下的文件与子文件夹)将被复制到C分区的根目录下。

$1\DRV----------------->C:\DRV

 

同名替换功能

我们知道,系统安装时,某个被选定的install.wim中的卷映像的全部内容将展开并复制到安装目标分区,这其中也包括windows目录。假定install.wim内部的windows目录中的setup目录中有一个文件叫A.TXT,$$\setup中也有一个文件夹叫A.TXT,两个文件同名,但内容不一样,怎么处理?安装程序默认的是用$$\setup中的A.TXT替换掉原先内置到install.wim中的那个文件。具体过程是怎么实现的?安装程序在install.wim的卷映像的全部内容将复制到安装目录分区(此时内置的A.TXT被复制到C:\windows\setup目录下)之后,将$OEM$\$$\setup中的A.TXT复制到目标分区的同样位置,替换已存在的A.TXT。

流程示意(先1后2):

1、光盘\sources\install.wim\某卷映像\windows\setup\A.TXT----->(安装时展开映像并复制)C:\windows\setup\A.TXT

2、光盘\sources\$OEM$\$$\\windows\setup\A.TXT------>(安装时复制到)C:\windows\setup\A.TXT

注:后者A.TXT替换前者A.TXT

 

默认可外置的CMD命令

oobe.cmd和setupComplete.cmd都是WIN7或WIN8默认可以内置或外置的CMD命令脚本,只要在特定位置存在这两个文件,就会被搜索并被调用执行。前者在OOBE阶段被安装程序调用运行,后者在首次登录系统之前。这两个CMD文件默认位置是在Windows\Setup\scripts目录内。以下是oobe.cmd和setupComplete.cmd内置时与外置时的位置。

内置:光盘\sources\install.wim\某卷映像\windows\setup\scripts
外置:光盘\sources\$OEM$\$$\windows\setup\scripts

33in1和以前的类似201304A这样的合集,我都是将oobe.cmd和setupComplete.cmd这两个脚本文件内置到install.wim的卷映像中。因此,如果你要外置oobe.cmd和setupComplete.cmd,就要修改oobe.cmd、setupComplete.cmd,在原先的命令基础上添加你需要命令行,而不是简单地自己再写一个oobe.cmd、setupComplete.cmd。oobe.cmd比较复杂,如果你需要增加命令,建议使用setupComplete.cmd。

setupComplete.cmd不需要解开install.wim中的卷映像去提取,可以从WIN7-OEM资料包找到。一般你可以setupComplete.cmd文本中的第一行去添加CMD命令行,而且也不要去添加删除scripts目录的命令。

 

$OEM$文件夹的不足

如果你使用外置CMD命令,那么将意味着,install.wim的每一个卷映像都会使用这个外置的CMD命令,因此外置CMD命令时,要考量一下是不是每一个卷映像都需要这个CMD命令。从这点看,内置的就灵活许多,在不同卷映像中,我们可以内置不同内容的setupComplete.cmd和oobe.cmd。


WIN8的$OEM$文件夹道理也差不多,不重复讲。

$OEM$文件夹的使用 (By无约而来)