制作基于WIM的安装盘

时间:2022-04-18 00:22:45
流传一:
所需工具软件
ximage.exe
Setide.exe 用来更改IDE和电源模式
SYSPREP.EXE 封装程序
devcon.exe 用来删除驱动

一、制作PE引导映像
1. 提取原始Install.wim的1和2映像解压到空分区(或虚拟分区,用命令:subst x: d:/boot subst y: d:/drive)
① 将 install.wim 中的内容张开到驱动器x:和y:
设 ximage 所在的目录在 D:/ximage;进入该目录,键入
ximage /apply d:/install.wim x: 1
ximage /apply d:/install.wim y: 2

② 将 x: 和 Y: 由的文件生成新的 WIM 文件:
ximage /flags 1 /boot x: e:/Install.wim "WinPE Boot Image"
ximage /flags 2 /append y: e:/Install.wim "WinPE Drive Image"


现在生成的Install.wim镜像已经含有PE必需的启动信息和驱动信息. (此文件可做个备份方便以后调用)

注意:如果你已经有带PE引导的*.wim文件,可不做此步骤


二、安装全新的Windows XP 和其它软件

三、删除修改驱动程序
运行 Setide.exe


四、优化系统
1、关闭“电源管理”下的的休眠功能。右击桌面空白处,选择“属性 →屏幕保护程序→电源→休眠”,取消“启用休眠”前的钩即可。

2、关闭系统还原
 
3、如果你安装了一些通过Windows Installer安装的软件,并且以后不打算删除或者修复这些软件,还可以有选择的把C:/WINDOWS/Installer下的一些.msi文件删除。

4、解压XP安装盘/SUPPORT/TOOLS/DEPLOY.CAB中的SYSPREP.EXE、setupcl.exe、setupmgr.exe到C:/sysprep目录

五、运行封装程序

1、运行C:/sysprep/setupmgr.exe 制作SYSPREP.INF文件

2、执行C:/sysprep/devcon.exe remove * 删除驱动

3、运行C:/sysprep/SYSPREP.EXE -mini -noreboot 封装系统

4、进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决 见下方的 进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决
5、重启电脑后用PE系统盘引导进入PE系统


六、在PE系统中制作映像文件

1、替换C:/WINDOWS/SYSTEM32/SETUP.BMP (安装背景图片、可不做)

2、追加自己封装的系统分区:
先删除pagefile.sys

del C:/pagefile.sys
ximage.exe /flags 0 /append C: D:/Install.wim "Windows XP VOL SP2 "
C: 表示系统所在盘符


4、用UltraISO将做好的install.wim替换iso中的install.wim


七、刻盘安装!

可制作2K,2003,XP的WIM安装盘


此制作方法还用2个问题
1、C:/ntldr文件需手动恢复
2、制作2K系统时在恢复系统时需修改Boot.ini文件(将WINDOWS改为WINNT)

(我自己写了个程序在恢复系统时自动恢复ntldr文件和修改Boot.ini文件)


ISO包含文件:

BOOT/
BOOTFIX.BIN
FS_EXT.SYS
SETUPLDR.BIN

SOURCES/
eula.txt
PIDGEN.DLL
setup.exe
SETUPP.INI
setup.exe.local
spflvrnt.dll
spwizeng.dll
wdscore.dll
wdsutil.dll
win32ui.dll
win32uitheme.dll
winsetup.dll
xmlrw.dll
感谢flyppgg

网上的另一个方法:

WIM 封装的 Windows XP SP2 制作过程全记录

具体步骤如下:
1、安装 Windows XP SP2 最新版本,打好各种补丁,调整好各种设置。
2、用 Ghost 做好备份。
3、删除可以删除的各种垃圾,以减小体积,这一步一定要小心。
3、用 Setupmgr.exe 生成自动封装脚本 sysprep.inf 文件。
4、用 Sysprep.exe 执行封装操作。
5、用深山红叶启动光盘启动电脑,进行 Windows PE。用 Ximage.exe 执行 lzx 压缩。
   ① 下载 Longhorn 光盘,从中提取出 install.wim 文件放在 E:install.wim;
   ② 执行命令 ximage /info E:install.wim,观察看到的信息:

Available Image Choices:
------------------------
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<WIM>
        <IMAGE INDEX="0">
                <DIRCOUNT>33</DIRCOUNT>
                <FILECOUNT>979</FILECOUNT>
                <TOTALBYTES>152267917</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0x1C58977</HIGHPART>
                        <LOWPART>0x96FB6AE0</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>WINPE BOOT IMAGE</DESCRIPTION>
                <FLAGS>1</FLAGS>
        </IMAGE>
        <IMAGE INDEX="1">
                <DIRCOUNT>32</DIRCOUNT>
                <FILECOUNT>976</FILECOUNT>
                <TOTALBYTES>152267730</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0x1C58977</HIGHPART>
                        <LOWPART>0xB38CF480</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>WINPE DRIVE IMAGE</DESCRIPTION>
                <FLAGS>2</FLAGS>
        </IMAGE>
        <IMAGE INDEX="2">
                <DIRCOUNT>1882</DIRCOUNT>
                <FILECOUNT>22874</FILECOUNT>
                <TOTALBYTES>3965721128</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0x1C58C3D</HIGHPART>
                        <LOWPART>0x9A7EE2A0</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>ALL IN 1 IMAGE</DESCRIPTION>
                <FLAGS>0</FLAGS>
        </IMAGE>
</WIM>
   可以看到 flag 1 和 flags 2 包含了Windows PE 的启动信息和驱动部分。
  ③ 生成两个虚拟驱动器:
md D:/boot
md d:/drive
subst x: d:/boot
subst y: d:/drive
  ④ 将 install.wim 中的内容张开到驱动器x:和y:
设 ximage 所在的目录在 D:/ximage;进入该目录,键入
ximage /apply e:/install.wim x: 1
ximage /apply e:/install.wim y: 2
   ⑤ 将 x: 和 Y: 由的文件生成新的 WIM 文件:
ximage /flags 1 /boot x: e:/install0.wim "BOOT IMAGE"
ximage /flags 2 /append y: e:/install0.wim "DRIVE IMAGE"
新生成的 install0.wim 文件比 install.wim 文件小很多。
   ⑥ 覆盖了原来的 install.wim 文件:
copy e:/install0.wim e:/install.wim
   ⑦ 将启动盘的所有内容压制到新 install.wim 文件中:
xiamge /flags 0 /append c: e:/install.wim "WINXP SP2 IMAGE"
这一步的时间很长,图拉丁1.2G 时执行 Ghost 只需要 4 分钟,用 ximage lzx 压缩需要 21 分钟。
6、用 Ghost 恢复系统。
7、将 insall.wim 文件放入下载的 iso 文件( www...net/bbs 有.提供的 iso 下载)中,重新生成 iso 镜像,刻盘,测试。
至此,整个封装过程结束。
由于 封装的 iso 内有大量的新驱动,在 vm 中测试可能会蓝屏,但在主机上安装不会有问题
流传三:

制作基于longhorn安装方法的封装系统盘的方法

1.请安装要封装的系统到空分区。

(注:即从头安装一遍,这个系统就是封装的wim镜象所包含的系统)



2.拷贝安装盘的i386(和amd64、IA64如果有的话)到系统的根目录。注意要在系统内操作!



3.安装TweakUI,修改安装源指向%SystemRoot%/I386(或者AMD64/IA64)



4.卸载TweakUI。

(注:这是为了解决电源管理,既ghost镜像里的硬盘抽象层,可用.的工具代替)



5.拷贝Longhorn 4074 or 5048的SYSPREP目录(或者是wim中提取)

(注:提取最新版的系统封装程序部署包)



6.在系统中运行SYSPREP/uncabsrc.cmd



7.运行SYSPREP程序进行封装。



8.分别将wim的1和2映像分区解到空分区(或虚拟分区)上。

注:这是winpe部分,可参照以下方法制作



10.提取第一部分:WinPE Boot Image到指定的空分区(盘符设为J:),然后执行命令:ximage /apply  D:/install.wim  J:  1

(“1”不能少,用来指定提取第一部分启动信息)



11.用ximage /boot 来生成带启动信息的WIM镜像,具体命令如下:

ximage /boot /capture /lzx /flags 1 J: e:/install.wim "WinPE Boot Image"

/capture表示生成镜像,/flags 1 表示用户自定义的标记。这里仍然遵循原镜像的约定。

/lzx 是压缩参数,经过测试,这是最大的压缩参数。

引号里的参数是自定义的描述性信息



12.删除D分区所有文件,从原install.wim里释放第二部分到D分区,命令如下

ximage /apply  D:/install.wim  J:  2

(“2”不能少,用来指定提取第二部分驱动信息)

step 4将D分区里的驱动信息追加到step 2中生成已经带启动信息的install.wim中,命令如下:

ximage /append /lzx /scroll /flags 2 D: e:/install.wim "WinPE Drive Image"

(/append表示追加,/scroll表示以滚屏方式显示进度,/flags 2表示作的标记,仍然遵循原镜像的约定)

现在生成的wim镜像已经含有PE必需的启动信息和驱动信息.



13.然后追加自己封装的系统分区:

 ximage.exe /flags 0 /append D: install.wim "Windows Longhorn pro"



14.将wim改名为install.wim.



15.用ximage /info 察看映像的indexes,如果是0、1、2,请改为1、2、3(用16进制编辑器)。

 (笔者注:没明白为什么要改,老外有人先做个空映像的方法代替)



16.用UltraISO将做好的wim替换4074的iso中的wim.



17.然后刻盘安装!

说明:

用Sysprep打造高质量的系统映像  

安装Windows漫长、无聊的等待让许多人忍无可忍,于是除了标准的安装方法之外,许多别出心裁的安装方式出现了,利用磁盘映象部署就是其中的一种。为了更好地使用磁盘映像,微软提供了一个Sysprep工具。

  


  


  


  


  


  Sysprep是一个“系统准备”工具,主要功能是在创建磁盘映像之前删除当前操作系统的所有唯一性信息,便于Ghost之类的工具复制磁盘映像。不过除此之外,Sysprep还有其他许多功能,充分利用这些功能将大大提高映像的质量。

  一、延长映像的生存期

  建筑需要坚固的基础才能经受住时间的考验,同样地,构造系统映像也需要优质的原材料和高超的技巧。为了构造出高质量的系统映像,不能让根本没用的驱动程序、注册键、应用程序混入映像文件,所以用来创建映像的源机器一定要全新安装。

  在准备创建映像的过程中,Sysprep会断开源机器与域的联系——所以只要有可能,应该尽量避免将源机器加入到任何域,可以用本地的Administrator帐户安装应用程序、Service Pack和实施各种定制操作。为了尽可能地延长映像文件的使用时间,这个阶段的定制操作应当慎重。如果要改变某些设置,尽可能用cmdlines.txt脚本(后面将有详细讨论)。

  在Windows中,每一个用户帐户有它自己的一套配置数据,如每个用户有不同的桌面设置、“我的文档”等,这类配置数据统称为配置文件。Windows会自动为每个新建的用户帐户设置默认的配置文件,但默认配置文件往往不能满足需要,必须经过定制才适合使用。对于大多数小型网络环境(或独立的机器),由于没有域服务器,不能通过组策略发布和管理用户的配置文件。那么,是否可以将定制的配置文件作为默认的配置文件加入到映像文件,也就是说,以后新建用户帐户时,让Windows自动将定制的配置文件作为默认配置文件呢?答案是肯定的,具体实现步骤是:

  ⑴ 建立一个临时的本地帐户,登录该帐户,定制桌面、开始菜单以及其他想要定制的与用户配置文件有关的设置,完成后,注销该帐户,然后用Administrator帐户登录。

  ⑵ 为便于后继步骤的操作,配置资源管理器,使其显示隐藏的文件和文件夹。

  ⑶ 右击“我的电脑”,选择“属性”,然后点击“高级”选项卡。在“用户配置文件”下面点击“设置”,选择为临时用户创建的配置文件,然后点击“复制到”,转到%SystemDrive%/Documents and Settings,选择Default User文件夹,点击“确定”。

  ⑷ 在“允许使用”下面点击“更改”,输入everyone,如图一;点击“确定”、“确定”。

⑸ 当系统询问是否要覆盖现有的默认用户配置文件时,回答“是”。

制作基于WIM的安装盘

经过这番设置之后,第一次登录该系统(或用该映像创建的系统)的用户将采用上面设定的默认用户配置文件。

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 

;SetupMgrTag[Unattended]
OemSkipEula=Yes
OemPnPDriverPath=Sysprep/Drivers/NETWORK;Sysprep/Drivers/AUDIO;
Sysprep/Drivers/MODEM;Sysprep/Drivers/VIDEO;


二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE/SYSTEM/Setup/OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%/Sysprep/i386/$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:

[Commands]"%SystemDrive%/Sysprep/Sysprep.exe -clean""FullPath/Script1.cmd""FullPath/Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。

四、附录:自动创建sysprep.inf文件

  创建sysprep.inf文件最方便的途径是使用微软的Setup Manager(安装管理器)程序。对于Windows XP,你可以在XP CD-ROM的/Support/Tools目录的deploy.cab文件里找到它。

  将安装管理器的执行文件setupmgr.exe复制到硬盘,双击执行,向导将询问是否要创建一个新的应答文件,还是修改现有的应答文件。选择“创建新文件”,指定这将是一个用于Sysprep的文件(图二),选择将用新建的应答文件部署的平台(图三)。

制作基于WIM的安装盘
制作基于WIM的安装盘
根据实际需要,分别设定常规、网络、高级类选项(图四),最后点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。

制作基于WIM的安装盘

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 

;SetupMgrTag[Unattended]OemSkipEula=YesOemPnPDriverPath=Sysprep/Drivers/NETWORK;Sysprep/Drivers/AUDIO; Sysprep/Drivers/MODEM;Sysprep/Drivers/VIDEO;


二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE/SYSTEM/Setup/OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%/Sysprep/i386/$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:

[Commands]"%SystemDrive%/Sysprep/Sysprep.exe -clean""FullPath/Script1.cmd""FullPath/Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。

四、附录:自动创建sysprep.inf文件

  创建sysprep.inf文件最方便的途径是使用微软的Setup Manager(安装管理器)程序。对于Windows XP,你可以在XP CD-ROM的/Support/Tools目录的deploy.cab文件里找到它。

  将安装管理器的执行文件setupmgr.exe复制到硬盘,双击执行,向导将询问是否要创建一个新的应答文件,还是修改现有的应答文件。选择“创建新文件”,指定这将是一个用于Sysprep的文件(图二),选择将用新建的应答文件部署的平台(图三)。

制作基于WIM的安装盘
制作基于WIM的安装盘
根据实际需要,分别设定常规、网络、高级类选项(图四),最后点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。

制作基于WIM的安装盘

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 

;SetupMgrTag[Unattended]OemSkipEula=YesOemPnPDriverPath=Sysprep/Drivers/NETWORK;Sysprep/Drivers/AUDIO; Sysprep/Drivers/MODEM;Sysprep/Drivers/VIDEO;


二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE/SYSTEM/Setup/OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%/Sysprep/i386/$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:

[Commands]"%SystemDrive%/Sysprep/Sysprep.exe -clean""FullPath/Script1.cmd""FullPath/Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。

四、附录:自动创建sysprep.inf文件

  创建sysprep.inf文件最方便的途径是使用微软的Setup Manager(安装管理器)程序。对于Windows XP,你可以在XP CD-ROM的/Support/Tools目录的deploy.cab文件里找到它。

  将安装管理器的执行文件setupmgr.exe复制到硬盘,双击执行,向导将询问是否要创建一个新的应答文件,还是修改现有的应答文件。选择“创建新文件”,指定这将是一个用于Sysprep的文件(图二),选择将用新建的应答文件部署的平台(图三)。

制作基于WIM的安装盘
制作基于WIM的安装盘
根据实际需要,分别设定常规、网络、高级类选项(图四),最后点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。

制作基于WIM的安装盘

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 

;SetupMgrTag[Unattended]OemSkipEula=YesOemPnPDriverPath=Sysprep/Drivers/NETWORK;Sysprep/Drivers/AUDIO; Sysprep/Drivers/MODEM;Sysprep/Drivers/VIDEO;


二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE/SYSTEM/Setup/OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%/Sysprep/i386/$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:

[Commands]"%SystemDrive%/Sysprep/Sysprep.exe -clean""FullPath/Script1.cmd""FullPath/Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。

四、附录:自动创建sysprep.inf文件

  创建sysprep.inf文件最方便的途径是使用微软的Setup Manager(安装管理器)程序。对于Windows XP,你可以在XP CD-ROM的/Support/Tools目录的deploy.cab文件里找到它。

  将安装管理器的执行文件setupmgr.exe复制到硬盘,双击执行,向导将询问是否要创建一个新的应答文件,还是修改现有的应答文件。选择“创建新文件”,指定这将是一个用于Sysprep的文件(图二),选择将用新建的应答文件部署的平台(图三)。

制作基于WIM的安装盘
制作基于WIM的安装盘
根据实际需要,分别设定常规、网络、高级类选项(图四),最后点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。

制作基于WIM的安装盘

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 

;SetupMgrTag[Unattended]OemSkipEula=YesOemPnPDriverPath=Sysprep/Drivers/NETWORK;Sysprep/Drivers/AUDIO; Sysprep/Drivers/MODEM;Sysprep/Drivers/VIDEO;


进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决 (微软破解中心)
众所周知,微软自带系统封装工具SYSPREP,可以方便快捷地进行企业产品部署,但是在WINDOWS LONGHORN之前,运用SYSPREP有一个限制,就是仅适用于用于封装的源计算机和目标计算机必须具有相同硬件抽象层 (HAL),因此,不同的网友均提出了不用的HAL检测解决方案,如ACPI封包、死性不改的电源模式等等,这些解决方案不同程度存在几个缺点:
1、检测的兼容性无法达到100%;
2、检测需要额外的文件,并且可能需要重新启动计算机,耗费了时间;
有没有一个最完美的解决方案呢?答案其实就在微软未公开的技术。
笔者通过对于WINDOWS LONGHORN各内测版本进行分析,现在公开微软部分未公开的技术:
1、微软自WINDOWS LONGHORN后,改写了NTLDR的部分代码,提供了/detecthal 接口
2、BOOT.INI支持/detecthal参数,以实现与NTLDR的结合,并实现开机启动即自动检测HAL
3、/INF/dtecthal.inf是一个关键性文件,提供各种HAL类型检测的参数说明

以下为进行SYSPREP封装后的自动完美检测HAL具体实现方案:

1、从系统中提取相应的HAL文件包:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll---->并更名为halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe---->并更名为ntkrnlup.exe

2、将上述相应的HAL文件包拷贝到系统/WINDOWS/SYSTEM32/(WINDOWS 2000为/WINNT/SYSTEM32/)

3、将以下代码保存为dtecthal.inf并拷贝到/WINDOWS/INF/(WINDOWS 2000为/WINNT/INF/)
如果不可见,可在文件夹选项里在“显示所有的文件和文件夹”打上勾和“隐藏受保护的系统文件”去掉勾。
引用:
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001,5.1.2600.2180

[hal]
acpipic_up = halacpi.dll
e_isa_up = halstnd.dll
mps_up = halapic.dll
mps_mp = halmps.dll
acpiapic_up = halaacpi.dll
acpiapic_mp = halmacpi.dll

;
;
;-------------------------------------------------------------------------
; Auto detecd Computer HAL with BIOS information
;-------------------------------------------------------------------------
; Copyright(R)1980-2005 Microsoft Crack Center MCC(1980-2005)
;
; tesk work by mstest@MCC 20050515
;
; mstested@hotmail.com
;-------------------------------------------------------------------------
;
;
; [ACPIOptions]
; This section lists options that affect the installation of ACPI on x86
;
; ACPIEnable
; 0 - ACPI will be disabled at install time regardless of the BIOS
; 1 - ACPI will be enabled at install time if an ACPI BIOS is present
; 2 - ACPI will be enabled based on the GoodACPIBios list, the NWACL
; and ACPIBiosDate
;
; ACPIBiosDate = mm,dd,yyyy
; Supplies the date that a BIOS must have to be considered good if it is
; not in the GoodACPIBios list. If a BIOS has a date greater than this and
; is not in the NWACL list, then it will be used unless ACPIEnable = 0
;
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999

4、修改BOOT.INI
在准备封装的系统后面加上 /DETECTHAL参数
如:
引用:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /fastdetect /detecthal

5、将LONGHORN版本的NTLDR拷贝到从C:/,覆盖原有的NTLDR

各位也可以参考上传附件中的mstest.rar文件包(包含NTLDR、DTECTHAL.INF、BOOT.INI示例)
DevCon 命令行设备管理器【真正的设备批量删除工具】

DevCon 命令行实用工具 设备管理器的替换选项

DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。

您可以将 DevCon 用于 Windows 2000 和 Windows XP。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。


更多信息
DevCon 不可再分发。提供它是为了用作调试和开发工具。您可以随意修改 DevCon 以供个人专用。此示例演示了如何有效地同时使用 SetupAPI 和 CfgMgr32 函数来枚举设备和执行设备操作。 从 Microsoft 下载中心可以下载以下文件:

立即下载 DevCon 软件包。 发布日期:2003 年 1 月 29 日

有关如何下载 Microsoft 支持文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
119591 如何从联机服务获取 Microsoft 支持文件
Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器上,以防未授权的用户对其进行更改。

DevCon.exe 文件包含以下文件:
文件 说明
I386/DevCon.exe 32 位 DevCon 工具的二进制文件。此文件在 64 位 Windows 上不能充分发挥作用。
Ia64/DevCon.exe 64 位 DevCon 工具的二进制文件。

注意:DevCon 的源代码也可以从 Windows XP DDK(位于 http://www.microsoft.com/ddk/)中得到,路径是 DDK 根目录/Src/Setup/Devcon,此位置还提供了文档。
使用 DevCon
DevCon 是一个带有内置文档的命令行实用工具。如果您运行 devcon help 命令,将会出现以下命令列表和描述信息。devcon help 命令可提供关于任何命令的详细帮助。使用其中的某些命令,您可以指定远程目标计算机。如果您在 WOW64 上使用 32 位版的 DevCon,则以下命令有效。设备控制台帮助:
devcon.exe [-r] [-m://] [...]
-r 如果指定它,在命令完成后若需要则重新启动计算机。
是目标计算机的名称。
是将要执行的命令(如下所示)。
... 是命令需要的一个或多个参数。
要获取关于某一特定命令的帮助,请键入:devcon.exe help
classfilter 允许修改类别筛选程序。
classes 列出所有设备安装类别。
disable 禁用与指定的硬件或
实例 ID 匹配的设备。
driverfiles 列出针对设备安装的驱动程序文件。
drivernodes 列出设备的所有驱动程序节点。
enable 启用与指定的硬件或
实例 ID 匹配的设备。
find 查找与指定的硬件或
实例 ID 匹配的设备。
findall 查找设备,包括那些未显示的设备。
help 显示此信息。
hwids 列出设备的硬件 ID。
install 手动安装设备。
listclass 列出某一安装类别的所有设备。
reboot 重新启动本地计算机。
remove 删除与特定的硬件或
实例 ID 匹配的设备。
rescan 扫描以发现新的硬件。
resources 列出设备的硬件资源。
restart 重新启动与特定的硬件或
实例 ID 匹配的设备。
stack 列出预期的设备驱动程序堆栈。
status 列出设备的运行状态。
update 手动更新设备。
UpdateNI 手动更新设备,无用户提示
SetHwID 添加、删除和更改根枚举设备的硬件 ID 的顺序。

示例 DevCon 命令
devcon -m://test find pci/*

列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)

devcon -r install Windows directory/Inf/Netloop.inf *MSLOOP

安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重启计算机。

devcon classes

列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)和描述性名称(例如,“通用串行总线控制器”)。

devcon classfilter upper !filter1 !filter2

删除这两个指定的筛选程序。

devcon classfilter lower !badfilter +goodfilter

用“goodfilter”替换“badfilter”。

devcon driverfiles =ports

列出与端口安装类别中的每一个设备关联的文件。

devcon disable *MSLOOP

禁用硬件 ID 以“MSLOOP”结尾(包括“*MSLOOP”)的所有设备。

devcon drivernodes @ROOT/PCI_HAL/PNP0A03

列出设备“ROOT/PCI_HAL/PNP0A03”的所有兼容驱动程序。这可以用来确定为什么选择原配的设备信息 (.inf) 文件而不选第三方 .inf 文件。

devcon enable '*MSLOOP

启用硬件 ID 为“*MSLOOP”的所有设备。单引号指示必须严格按字面解释硬件 ID(换句话说,星号 [“*”] 真的是 一个星号,而不是通配符)。

devcon find *

列出本地计算机上存在的所有设备的设备实例。

devcon find pci/*

列出本地计算机上所有已知的“外围组件互连”(PCI) 设备(如果一个设备的硬件 ID 以“PCI/”为前缀,此命令就认为该设备是 PCI 设备)。

devcon find =ports *pnp*

列出存在的作为 ports 安装类别的成员而且硬件 ID 中包含“PNP”的设备。

devcon find =ports @root/*

列出存在的作为 ports 安装类别的成员而且在枚举树的“root”分支中的设备(实例 ID 以“root/”为前缀)。请注意,有关实例 ID 的格式化方式,不应作任何编程假定。要确定根设备,可以检查设备状态位。此功能包括在 DevCon 中是为了帮助进行调试。

devcon findall =ports

列出 ports 类别的“不存在”的设备和存在的设备。这包括已经被删除的设备、从一个插槽移到另一个插槽的设备,以及在某些情况下由于 BIOS 改变而被不同地枚举的设备。

devcon listclass usb 1394

列出命令中所列的每个类别(本例中是 USB 和 1394)的所有存在的设备。

devcon remove @usb/*

删除所有 USB 设备。被删除的设备列出时将显示其删除状态。

devcon rescan

重新扫描以发现新的“即插即用”设备。

devcon resources =ports

列出由 ports 安装类别中的所有设备使用的资源。

devcon restart =net @'ROOT/*MSLOOP/0000

重新启动环回适配器“ROOT/*MSLOOP/0000”。命令中的单引号指示必须按字面解释实例 ID。

devcon sethwid @ROOT/LEGACY_BEEP/0000 := beep

将硬件 ID beep 赋予旧式蜂鸣设备。

devcon stack =ports

列出设备预期的驱动程序堆栈。包括设备和类别高层/低层筛选程序,以及控制服务。

devcon status @pci/*

列出实例 ID 以“pci/”开头的每一个存在设备的状态。

devcon status @ACPI/PNP0501/1

列出特定设备实例的状态,在本例中是一个高级配置和电源界面 (ACPI) - 枚举的串行端口。

devcon status @root/rdp_mou/0000

列出 Microsoft 终端服务器或终端服务鼠标驱动程序的状态。

devcon status *PNP05*

列出所有 COM 端口的状态。

devcon update mydev.inf *pnp0501

更新与硬件 ID *pnp0501 严格匹配的所有设备,让它们使用 Mydev.inf 中与硬件 ID *pnp0501 关联的最好的驱动程序。

注意:即使系统上已经存在更好的匹配项,这一更新也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。此更新仅影响与指定的硬件 ID 匹配的设备,不会影响到其子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装此驱动程序。如果需要重新启动计算机,将报告这一情况并且 DevCon 返回一个级别 1 错误。如果指定 -r,在需要重新启动计算机时就会自动重启。

注意:
? Devcon 将返回一个在脚本中使用的错误级别:
“0”指示成功。
“1”指示需要重新启动。
“2”指示失败。
“3”指示语法错误。
? 如果您指定 -r 并且需要重新启动,则在处理完所有设备后,将在无任何警告信息的情况下重新启动。
? 如果您指定 -m://计算机并且命令对远程计算机不起作用,将报告一个错误。
? 为便于交互,Devcon 允许在实例 ID 中使用通配符。不要根据一台计算机或一种操作系统版本去推测有关另一台计算机或另一种操作系统版本的实例 ID 格式的任何信息。

 

删除所有具体的使用方法是运行:devcon.exe remove *

删除所有设备

小提示:

修改WIM安装时这里的文字

修改WIN32UI.DLL这个文件就可以了

ResHacker
编辑





















提示:如何使用系统准备工具 (Sysprep) 来自动实现WindowsXP的成功部署

本文分步描述了如何使用系统准备工具 (Sysprep) 来自动实现 Microsoft Windows XP 的成功部署。Sysprep 是一个为系统管理员、原始设备制造商 (OEM) 以及其他必须在多台计算机上自动渴?Windows XP 操作系统的人士设计的工具。在一台计算机上执行初始安装步骤后,可以运行 Sysprep 工具来准备用于克隆的示范计算机。


回到顶端

更多信息
运行 Sysprep 工具的要求
要使用 Sysprep 工具,计算机的硬件和相关设备必须满足下列要求: ? 参考计算机和目标计算机必须具有兼容的 HAL。例如,基于高级可编程中断控制器 (APIC) 的 MPS(多处理器系统)必须使用相同的 APIC HAL。基于标准 HAL 可编程中断控制器 (PIC) 的系统与 APIC HAL 或 MPS HAL 都不兼容。
? 参考计算机和目标计算机必须具有相同的高级配置和电源界面 (ACPI) 支持。
? 参考计算机和目标计算机上的即插即用设备(如调制解调器、声卡、网络适配器和视频卡)不是非得来自同一个制造商。但是,必须提供这些设备的驱动程序。
? 第三方磁盘映像软件或磁盘复制硬件设备是必需的。这些产品可创建计算机硬盘的二进制映像,并将该映像复制到另一个硬盘或存储到单独磁盘上的文件中。
? 目标计算机上的硬盘大小必须至少与参考计算机上的硬盘大小相同。如果目标计算机上的硬盘较大,则主分区中不包括这一差别。但是,如果主分区是使用 NTFS 文件系统进行格式化的,则可以使用 Sysprep.inf 文件中的 ExtendOemPartition 项来扩展主分区。

回到顶端

准备一台参考计算机以用于 Sysprep 部署
要准备一台参考计算机以用于 Windows XP 中的 Sysprep 部署,请按照下列步骤操作: 1. 在参考计算机上,安装此操作系统以及任何希望安装在目标计算机上的程序。
2. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。  
3. 在命令提示符处,转到驱动器 C 的根文件夹,然后键入 md Sysprep。
4. 将 Windows XP 操作系统光盘插入正确的 CD-ROM 或 DVD-ROM 驱动器中,然后打开 /Support/Tools 文件夹中的 Deploy.cab 文件。

注意:为确保使用的是 Service Pack 的正确版本的 Deploy.cab 文件,请使用随此 Service Pack 分发的 Deploy.cab 文件。请访问下面的 Microsoft 网站以下载正确版本的 Service Pack:
http://www.microsoft.com/downloads/search.aspx?displaylang=zh-cn (http://www.microsoft.com/downloads/search.aspx?displaylang=zh-cn)
5. 将 Sysprep.exe 文件和 Setupcl.exe 文件复制到 Sysprep 文件夹中。

注意:如果使用 Sysprep.inf 文件,还应将该文件复制到 Sysprep 文件夹中。为了使 Sysprep 工具正常运行,Sysprep.exe 文件、Setupcl.exe 文件和 Sysprep.inf 文件都必须在同一个文件夹下。  
6. 取出 Windows XP 操作系统光盘。
7. 在命令提示符处,键入 cd Sysprep 以转到 Sysprep 文件夹。
8. 要运行 Sysprep 工具,请在命令提示符处键入以下命令:
Sysprep /optional parameter
注意:要查看参数列表,请参见“Sysprep 参数”一节。

如果从 %systemdrive%/Sysprep 文件夹运行 Sysprep.exe 文件,则 Sysprep.exe 文件会在运行结束后删除整个文件夹及其内容。
9. Microsoft 建议您在参考计算机上运行 Sysprep.exe 文件后,将参考计算机从本地网络中隔离出来,随后在该本地网络中部署映像以避免任何 NetBIOS 冲突。这将允许 Sysprep 工具完成安装程序,加入指定的域,并使用在 Sysprep.inf 应答文件中指定的新计算机名。

创建 Sysprep.inf 应答文件
Sysprep.inf 应答文件是一个文本文件,它将针对一系列图形用户界面 (GUI) 对话框的应答编成脚本。要创建 Sysprep 工具所使用的 Sysprep.inf 应答文件,可以使用文本编辑器,或者使用包含在 Windows XP 光盘上并且同时包含在 Microsoft Windows XP Resource Kit 中的安装管理器工具。必须将应答文件重命名为 Sysprep.inf,并将它放在安装 Windows XP 的驱动器的根目录下的 Sysprep 文件夹中,或者可以将这些文件放在软盘上。如果 Sysprep 文件夹的名称不同,安装程序将忽略它。这里没有指定最小化安装向导应答文件的参数。


Sysprep.inf 应答文件格式及参数
? Sysprep.inf 应答文件格式和参数与 Windows XP 的 Unattended.txt 文件相同,但是只支持下列部分和参数:

[Unattended]
ExtendOemPartition
OemPnPDriversPath
OemSkipEula
InstallFilesPath
KeepPageFile
ResetSourcePath
UpdateHAL
UpdateUPHAL
UpdateInstalledDrivers
TapiConfigured

[GuiUnattended]
AdminPassword
Autologon
AutoLogonCount
OEMDuplicatorString
OEMSkipRegional
OEMSkipWelcome
TimeZone

[UserData]
支持与 Unattend.txt 文件相同的条目集。
[LicenseFilePrintData]
支持与 Unattend.txt 文件相同的条目集。
[GuiRunOnce]
支持与 Unattend.txt 文件相同的条目集。
[Display]
支持与 Unattend.txt 文件相同的条目集。
[RegionalSettings]
支持与 Unattend.txt 文件相同的条目集。
[Networking]
支持与 Unattend.txt 文件相同的条目集。
[Identification]
支持与 Unattend.txt 文件相同的条目集。
[TapiLocation]
[Sysprep]
自动生成 [SysprepMassStorage] 部分中的条目。
[SysprepMassStorage]
允许使用具有不同海量存储设备的计算机上的相同映像。

回到顶端

使用安装管理器工具创建 Sysprep.inf 应答文件
要安装“安装管理器”工具并创建应答文件,请按照下列步骤操作: 1. 打开“我的电脑”,然后打开 Windows XP 光盘上的 Support/Tools 文件夹。
2. 双击“Deploy.cab”文件以打开它。
3. 在“编辑”菜单上,单击“全选”。
4. 在“编辑”菜单上,单击“复制到文件夹”。
5. 单击“新建文件夹”。

键入所需的安装管理器文件夹名称,然后按 Enter 键。例如,键入“setup manager”,然后按 Enter 键。
6. 单击“复制”。
7. 打开所创建的新文件夹,然后双击“Setupmgr.exe”文件。Windows 安装管理器向导随即启动。
8. 按照向导中的说明创建应答文件。  
有关如何创建应答文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
308662 (http://support.microsoft.com/kb/308662/) 如何在 Windows 2000 中使用安装管理器创建应答文件
回到顶端

Sysprep 参数
在 Windows XP 中,可以将下列可选参数与 Sysprep 命令一起使用: ? -activated - 不重设 Windows 产品激活的宽限期。只有在出厂前激活了 Windows 安装才可以使用该参数。

重要说明:用来激活 Windows 安装的产品密钥必须与贴在特定计算机上的 COA 不干胶标签上的产品密钥相匹配。
? -audit - 重新启动计算机进入“工厂”模式,而不需要生成新的安全 ID (SID) 或处理 Winbom.ini 文件中 [OEMRunOnce] 部分的任何项目。只有在计算机已经处于“工厂”模式时,才使用该命令行参数。
? -bmsd - 将所有可用的海量存储设备填入 [SysprepMassStorage] 部分。
? -clean - 清除 Sysprep.inf 文件中 [SysprepMassStorage] 部分所使用的关键设备数据库。

? -factory - 在启用网络功能但不显示“欢迎使用 Windows”或“最小化安装”的状态下重新启动。该参数用于更新驱动程序、运行即插即用枚举、安装程序、测试、用客户数据配置计算机或在工厂环境中进行其他配置更改。对于使用磁盘映像(或克隆)软件的公司,“工厂”模式可以减少需要的映像数目。

在以“工厂”模式完成所有任务之后,使用 -reseal 参数运行 Sysprep.exe 文件,以使计算机做好最终用户交货准备。  
? -forceshutdown - 在 Sysprep.exe 文件完成后关闭计算机。

注意:此参数用于使用 ACPI BIOS 的计算机,这些计算机在 Sysprep.exe 文件表现默认行为时不能正常关机。  
? -mini - 将 Microsoft Windows XP Professional 配置为使用“最小化安装”,而不是使用“欢迎使用 Windows”。该参数对 Microsoft Windows XP Home Edition 不起作用,其中首次运行经验总是“欢迎使用 Windows”。

请注意,如果您打算使用 Sysprep.inf 文件自动进行最小化安装,则必须使用 -mini 开关运行 Sysprep 工具,或者在 GUI 界面中单击以选中“最小化安装”复选框。如果不选择运行“最小化安装”,则默认情况下 Windows XP Professional 将运行“欢迎使用 Windows”。
? -noreboot - 在不重新启动计算机或准备复制的情况下,修改注册表项(SID、OemDuplicatorString 和其他注册表项)。该参数主要用于测试,尤其是查看是否正确修改了注册表。Microsoft 不推荐使用该选项,因为在运行 Sysprep.exe 文件后对计算机做出更改可能会使 Sysprep.exe 文件所做的准备失效。不要在生产环境中使用该参数。
? -nosidgen - 运行 Sysprep.exe 文件而不生成新的 SID。如果不复制运行 Sysprep.exe 文件的计算机或者要预先安装域控制器,则必须使用该参数。
? -pnp - 在最小化安装期间运行旧式设备的完整的即插即用设备枚举和安装。如果首次运行经验是“欢迎使用 Windows”,则命令行参数不起作用。

仅当在必须检测和安装旧式非即插即用设备时,才使用 -pnp 命令行参数。不要在仅使用即插即用设备的计算机上使用 sysprep -pnp 命令行参数。否则,将增加首次运行经验所需的时间,而对用户没有任何好处。

注意:如果必须使用未签名的驱动程序,则使用 UpdateInstalledDrivers=yes 参数连同 OemPnPDriversPath= 和 DriverSigningPolicy=ignore 而非 -pnp 命令行参数以提供更加无缝的安装。
? -quiet - 运行 Sysprep.exe 文件而不显示屏幕确认消息。如果要自动运行 Sysprep.exe 文件,则该参数很有用。例如,如果要在无人参与安装程序完成后立即运行 Sysprep.exe 文件,应将 sysprep -quiet 命令添加到 Unattend.txt 文件的 [GuiRunOnce] 部分中。
? -reboot - 强制计算机自动重新启动,然后按照指定的方式,启动“欢迎使用 Windows”、“最小化安装”或“工厂”模式。如果要审核计算机,并验证首次运行经验是否运行正确,该参数很有用。
? -reseal - 清除事件查看器日志并使计算机做好准备以便向客户传送。“欢迎使用 Windows”或“最小化安装”设置为在下次计算机重新启动时启动。如果运行 sysprep -factory 命令,必须将安装封装为预安装过程的最后一个步骤。为此,请运行 sysprep -reseal 命令或单击“Sysprep”对话框中的“重新封装”按钮。