二、挖掘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,完成{zh1}的Sysprep操作。 除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。 {zh1},你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE\SYSTEM\Setup\OemDuplicatorString确定原来的映像。 三、自动执行操作 为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。 ■ cmdlines.txt 这个文件位于%SystemDrive%\Sysprep\i386\$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序: [Commands]
⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。 ⑵ 必须将所有要用到的文件复制到本地硬盘上。 ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。 ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。 ■ GuiRunOnce 如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户{dy}次登录时运行,要注意的几点是: ⑴ 必须启用了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的文件(图二),选择将用新建的应答文件部署的平台(图三)。
根据实际需要,分别设定常规、网络、高级类选项(图四),{zh1}点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。
㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。 ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将xx它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。 ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。 ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:
;SetupMgrTag
二、挖掘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,完成{zh1}的Sysprep操作。 除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。 {zh1},你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE\SYSTEM\Setup\OemDuplicatorString确定原来的映像。 三、自动执行操作 为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。 ■ cmdlines.txt 这个文件位于%SystemDrive%\Sysprep\i386\$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序: [Commands]
⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。 ⑵ 必须将所有要用到的文件复制到本地硬盘上。 ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。 ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。 ■ GuiRunOnce 如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户{dy}次登录时运行,要注意的几点是: ⑴ 必须启用了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的文件(图二),选择将用新建的应答文件部署的平台(图三)。
根据实际需要,分别设定常规、网络、高级类选项(图四),{zh1}点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。
㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。 ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将xx它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。 ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。 ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:
;SetupMgrTag
进行SYSPREP后计算机硬件抽象层HAL(电源模式)的xx解决 (微软xx中心) 以下为进行SYSPREP封装后的自动xx检测HAL具体实现方案: 1、从系统中提取相应的HAL文件包:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB) 2、将上述相应的HAL文件包拷贝到系统\WINDOWS\SYSTEM32\(WINDOWS 2000为\WINNT\SYSTEM32\) 3、将以下代码保存为dtecthal.inf并拷贝到\WINDOWS\INF\(WINDOWS 2000为\WINNT\INF\) [hal] ;
各位也可以参考上传附件中的mstest.rar文件包(包含NTLDR、DTECTHAL.INF、BOOT.INI示例) DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。 您可以将 DevCon 用于 Windows 2000 和 Windows XP。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。
立即下载 DevCon 软件包。 发布日期:2003 年 1 月 29 日 有关如何下载 Microsoft 支持文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: DevCon.exe 文件包含以下文件: 注意:DevCon 的源代码也可以从 Windows XP DDK(位于 )中得到,路径是 DDK 根目录\Src\Setup\Devcon,此位置还提供了文档。 示例 DevCon 命令 列出计算机 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 关联的{zh0}的驱动程序。 注意:即使系统上已经存在更好的匹配项,这一更新也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。此更新仅影响与指定的硬件 ID 匹配的设备,不会影响到其子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装此驱动程序。如果需要重新启动计算机,将报告这一情况并且 DevCon 返回一个级别 1 错误。如果指定 -r,在需要重新启动计算机时就会自动重启。 注意: 删除所有设备
小提示: 修改WIM安装时这里的文字 修改WIN32UI.DLL这个文件就可以了 用ResHacker
本文分步描述了如何使用系统准备工具 (Sysprep) 来自动实现 Microsoft Windows XP 的成功部署。Sysprep 是一个为系统管理员、原始设备制造商 (OEM) 以及其他必须在多台计算机上自动渴?Windows XP 操作系统的人士设计的工具。在一台计算机上执行初始安装步骤后,可以运行 Sysprep 工具来准备用于克隆的示范计算机。
更多信息 回到顶端 准备一台参考计算机以用于 Sysprep 部署 注意:为确保使用的是 Service Pack 的正确版本的 Deploy.cab 文件,请使用随此 Service Pack 分发的 Deploy.cab 文件。请访问下面的 Microsoft 网站以下载正确版本的 Service Pack: 注意:如果使用 Sysprep.inf 文件,还应将该文件复制到 Sysprep 文件夹中。为了使 Sysprep 工具正常运行,Sysprep.exe 文件、Setupcl.exe 文件和 Sysprep.inf 文件都必须在同一个文件夹下。 如果从 %systemdrive%\Sysprep 文件夹运行 Sysprep.exe 文件,则 Sysprep.exe 文件会在运行结束后删除整个文件夹及其内容。 创建 Sysprep.inf 应答文件
[Unattended] [GuiUnattended] [UserData] 回到顶端 使用安装管理器工具创建 Sysprep.inf 应答文件 键入所需的安装管理器文件夹名称,然后按 Enter 键。例如,键入“setup manager”,然后按 Enter 键。 Sysprep 参数 重要说明:用来xx Windows 安装的产品密钥必须与贴在特定计算机上的 COA 不干胶标签上的产品密钥相匹配。 ? -factory - 在启用网络功能但不显示“欢迎使用 Windows”或“最小化安装”的状态下重新启动。该参数用于更新驱动程序、运行即插即用枚举、安装程序、测试、用客户数据配置计算机或在工厂环境中进行其他配置更改。对于使用磁盘映像(或克隆)软件的公司,“工厂”模式可以减少需要的映像数目。 在以“工厂”模式完成所有任务之后,使用 -reseal 参数运行 Sysprep.exe 文件,以使计算机做好最终用户交货准备。 注意:此参数用于使用 ACPI BIOS 的计算机,这些计算机在 Sysprep.exe 文件表现默认行为时不能正常关机。 请注意,如果您打算使用 Sysprep.inf 文件自动进行最小化安装,则必须使用 -mini 开关运行 Sysprep 工具,或者在 GUI 界面中单击以选中“最小化安装”复选框。如果不选择运行“最小化安装”,则默认情况下 Windows XP Professional 将运行“欢迎使用 Windows”。 仅当在必须检测和安装旧式非即插即用设备时,才使用 -pnp 命令行参数。不要在仅使用即插即用设备的计算机上使用 sysprep -pnp 命令行参数。否则,将增加首次运行经验所需的时间,而对用户没有任何好处。 注意:如果必须使用未签名的驱动程序,则使用 UpdateInstalledDrivers=yes 参数连同 OemPnPDriversPath= 和 DriverSigningPolicy=ignore 而非 -pnp 命令行参数以提供更加无缝的安装。 |