【精华】教你如何制作无人值守安装Win XP系统盘

  介绍

  你有没有想过有这样一张光盘,能够全自动安装Windows XP,并且自动输入你的姓名、序列号、时区还有区域设置?甚至还能全自动安装你常用的应用程序,包括DirectX 9.0b、.Net Framework 1.1还有在SP2 发布之前的所有Hotfix补丁、驱动程序、注册表调 整、破解过的UXTheme.dll,而这期间并不需要你的干预 ,是全自动运行的。如果你想要,那么本文就是为你准备的。

  准备开始

  需要准备的材料:

  • 集成了SP1 的Windows XP CD 
  • XP SP1 Deployment Tools
  • WinISO (可选)
  • 一个顺手的光盘刻录工具

  如果你还没有把SP1 集成进你的Windows XP 安装光盘,那么我建议你马上做一个,因为这是很有用的。你可以通过这两个链接找到制作的方法:The Elder Geek Windows Help.net

  在C盘的根目录创建一个叫做XPCD 的文件夹(C:\XPCD),然后复制集成了SP1 的Windows XP 安装光盘上的所有文件到C:\XPCD

  如果你只是想全自动的进行Windows XP的无人值守安装,你就不需要再你的XPCD文件夹下创建任何子文件夹了。如果你想要在安装操作系统的同时安装一些额外的程序,例如驱动程序、常用的应用程序、Hotfixes等,那你就需要在XPCD文件夹下创建如下的子文件夹:

  C:\XPCD\$OEM$\$1\install\
  C:\XPCD\$OEM$\$1\drivers\

  唯一一个你可以改名的文件夹只有“install”和“drivers”,你可以把它们改名为“Extras”、“MyStuff”或者其他什么你喜欢的名字(最好不要使用中文)。本文则会假设你就使用“install”和“drivers”,所以确保你使用的名称跟你在批处理文件中的名称是统一的。

  下一步就是要创建一个winnt.sif文件了,这个文件将在安装系统的过程中提供所有预先输入好的应答信息。 创建 Winnt.sif 应答文件

  下载XP SP1 Deployment Tools ,然后解压缩到一个文件夹,或者双击cab文件,提取出setupmgr.exe 和ref.chm这两个文件。

无人值守安装Win XP系统[多图]图片1

  Setup Manager(setupmgr.exe)是一个向导模式的用来创建winnt.sif应答文件的工具,使用这个工具创建的应答文件基本上就不会出现什么错误了。创建过程中注意使用以下的选项:

  新建或修改现有应答文件:新建
  安装类型:Windows 无人值守安装
  Windows 平台:Windows XP Home或者 Professional
  交互等级:全部自动
  分发文件夹:从CD安装

  另外,你还要同意授权协议,然后按照你的实际情况填写安装过程中需要的其他信息。如果有什么选项的含义你不是很明白,那也可以忽略它,对于这些忽略的或者没有填写的选项,Windows XP 将会使用默认设置来进行安装。

  当你完成后,程序会自动创建一个名为unattend.txt的文件。如果你要从CD上安装系统,那你就要把这个文件改名为winnt.sif(请确定你没有改名为winnt.sif.txt)。

  如果你不打算安装额外的程序,而只是进行无人值守安装,那就可以直接参考结束工作

  重要

  如果你还要安装额外的程序,那还需要在winnt.sif文件的[Unattended]字段添加如下命令:

  [Unattended]
  OemPreinstall=Yes
  UnattendSwitch="no"

  你也可以查看参考资料资源获得批处理文件的范例。  批处理文件和命令的使用

  在我们使用批处理文件安装额外的程序之前,你应该知道批处理文件起到什么样的作用以及它们是怎样使用的。

  批处理文件(*.cmd 或者 *.bat)是从winnt.sif文件的   [GuiRunOnce]字段下被执行的,这发生在安装程序安装好操作系统并使用管理员帐户登录系统后。在这一过程中我们可以安装Hotfix补丁程序、应用程序、破解过的uxtheme.dll、删除不想要的墙纸和屏幕保护等。在批处理文件执行完毕后,Windows的外壳(Shell)就会被加载。

  在本文的每一页中,每个应用的批处理命令都会被当作一个完整的批处理文件对待,都有自己的开头和结尾(应用程序和DirectX的批处理文件除外)。你可以选择使用多个单独的批处理文件,但也可以把它们全部综合在一起。

  在批处理文件的开头通常会使用 CLS 命令清理屏幕,随后会用@echo off 来隐藏我们熟悉的 C:\> 命令行。 ECHO. 命令则会显示一行空白。举例来说 ECHO example message 命令会在屏幕上显示“example message” 。

  start /wait %systemdrive%\$OEM\$1\path\to\setup.exe /switches
  start
会运行程序,而wait 命令会使得安装程序一直等待,直到批处理文件中的前一条命令完全执行完毕。使用wait命令是很重要的,这样在批处理文件中的命令就不会同时被执行,也就尽量避免了产生冲突的可能。

  要结束批处理文件,可以使用 EXIT命令。建议你在进行测试的时候在使用Exit命令前先使用PAUSE命令。使用PAUSE命令会使得批处理文件运行完毕后要求你按任意键继续,这样你就有足够的时间阅读安装过程中出现错误的程序显示的错误内容(如果有的话)了。

  如果你已经对批处理文件有所了解,并且想看到更多的示例,你可以察看后面的资源页。

  批处理文件运行的截图: Screenshot

无人值守安装Win XP系统[多图]图片2

  正如你在截图中所看到的,这里同时使用了"ECHO." 命令和 "ECHO message"命令。这不是必须的,但是这使得你可以明白批处理文件实际上是怎样工作的。 无人值守安装DirectX 9.0b

  下载: DirectX 9.0b Redistributable

  执行 dx90b_redist.exe,同意 EULA,然后选择把文件解压缩到这个文件夹:
C:\XPCD\$OEM$\$1\install\Directx9b\

无人值守安装Win XP系统[多图]图片3

  为了节省空间你也可以删除 BDABDANTDirectX 这三个文件,总共可以节约16MB左右。这个方法在Windows XP SP1下测试完全可行。整个文件夹现在应该是这样的:

无人值守安装Win XP系统[多图]图片4

  为了让你同意EULA(事实上在解压缩安装文件的时候我们就同意过了),微软禁止了DirectX的无人值守全自动安装方式,因此我们要改动一下安装文件,以便可以无人值守安装。如果你想要自己修改,按么找一个二进制编辑软件,打开dxsetup.exe文件,搜索0x33e2然后把这一行的74改成EB

  如果你不想自己修改,也可以在这里下载修改过的 Dxsetup.zip (for DirectX 9.0b)

  解压缩这个文件,然后复制其中的内容到之前保存DirectX9安装文件的文件夹,并覆盖原来的dxsetup.exe 文件。

  在你的批处理文件中添加如下命令:

  ECHO.
  ECHO Installing DirectX 9.0b
  ECHO Please wait...
  start /wait %systemdrive%\install\DirectX9b\dxsetup.exe /opk

  如果你想要看到安装的过程,你也可以用 /windowsupdate 命令代替 /opk 命令。

无人值守安装Win XP系统[多图]图片5
点击放大

  如果基于某些原因你需要修改过的针对DirectX9.0a的dxsetup.exe 文件,你可以从这里下载。 应用程序的全自动安装

  在本段中,我们会教你怎样在无人干预的情况下全自动安装常用的应用程序。所涉及到的程序都在左侧的列表中。

  每一页中都会向你展示你需要用到的批处理命令。而你也可以把它们添加到你自己的批处理文件中,或者如果你分别为应用程序和补丁程序设置了不同的批处理文件,你就可以把这些命令添加到单独的一个applications.cmd批处理文件中。同时,你可以在资源部份看看我是怎样做的。

  最后别忘了把批处理文件的路径添加到winnt.sif文件的[GuiRunOnce] 字段!

  尚未添加的应用程序

  Winamp
  Messenger Plus!

  没有添加这些程序是因为,在全自动安装这些程序完成后,这些程序会试图自动运行或者要求你回答一些问题。

  全自动安装 Pre-SP2 Hotfixes

  在写这篇文章的时候,在Windows Update网站上可用的Windows XP 关键更新大概有35MB左右,没人喜欢下载它们,尤其是当你使用一个56K的小猫上网时。在安装好操作系统并开始使用前,你还要上网更新大量补丁,甚至还要下载并安装不少应用软件,而在使用前你可能想对你的系统做一个完整的备份,这实在是一件麻烦的事。幸好我们可以自动安装程序,我们可以把这35MB的补丁程序放在Windows XP的安装光盘中,并且在安装操作系统的同时装好它们。本段分为两部分:获得Hotfixes 和安装Hotfixes。

  在安装Hotfixes 的页面你将会看到需要使用的批处理命令,你需要把这些命令添加到你的批处理文件中,或者添加到专门的hotfixes.cmd 如果你根据用途的不同而使用了多个批处理文件。你可以在资源页面看到我是怎样创建我自己的hotfixes.cmd的。

  别忘了在winnt.sif文件的[GuiRunOnce]字段下添加上你的批处理文件的路径! 获得 Hotfixes

  你可能想知道怎样找到你的系统所需要的hotfixes补丁,有两种方法:

  方法 1:

  是用一台只安装了SP1 的Windows XP 电脑(不要安装其他补丁程序),然后访问 WindowsUpdate网站。注意显示出来的每个补丁程序前的六位数的编号,例如“329441: Security Update for Microsoft Windows”,在你记下所有补丁程序的编号后,把这些编号添加到这个URL的后面:http://support.microsoft.com/?kbid=xxxxxx ,用编号代替上面的 xxxxxx 。然后通过相应的知识库文章中提出的链接下载每个补丁程序。重复进行,直到所有可用的补丁程序都下载回来了。

  方法 2:

  不需要访问WindowsUpdate网站,我们可以使用免费得软件:HFNetChk 。正如网页上的说明:“HFNetChk.exe 是一个多线程的命令行工具,你可以用它连接多台计算机,并查看补丁程序的安装轻卡ung。”。

  安装HFNetChk 然后打开命令提示符(开始 >运行 >CMD),进入到安装HFNetChk的目录(通常是:C:\Program Files\Shavlik Technologies\HFNetChk\),然后输入:hfnetchk -v

  记下每个补丁程序的知识库文章编号,然后按照方法一中的说明来分别查询它们;或者使用Technet 安全公告编号(MSxx-xxx),然后使用这个URL:http://www.microsoft.com/technet/security/bulletin/MSxx-xxx.asp,把xx-xxx用HFNetChk中显示的编号代替。

  这是一个冗长的过程,然是最终来说还是值得的!以后维护新的Hotfix补丁程序就容易得多了,因为以后每周三(那是微软的补丁日)只会发布一到两个新的补丁程序。当SP2 正式发布后,你就可以丢掉这些,然后开始收集Pre-SP3 hotfixe补丁程序了... 但那也是很久以后的事情了!

  安装 Hotfixes

  把所有的补丁程序都保存在这个文件夹中:C:\XPCD\$OEM$\$1\install\Hotfixes\

  打开记事本,复制并粘贴如下的命令(这只是一个范例,如果这里的文件路径跟你的实际情况不同,请做适当的修改):

CLS
@echo off
ECHO.
ECHO Installing Q815021...
start /wait %systemdrive%\install\Hotfixes\Q815021_WXP_SP2_x86_ENU.exe /Q /M /Z
ECHO.
ECHO Installing Q811493...
start /wait %systemdrive%\install\Hotfixes\Q811493_WXP_SP2_x86_ENU.exe /Q /M /Z
ECHO.
ECHO Installing Q819639...
start /wait %systemdrive%\install\Hotfixes\WindowsMedia9-KB819639-x86-ENU.exe /Q:A /R:N
ECHO.
ECHO Installing Q817606...
start /wait %systemdrive%\install\Hotfixes\Q817606_WXP_SP2_x86_ENU.exe /Q /M /Z
ECHO.
EXIT

无人值守安装Win XP系统[多图]图片6 无人值守安装Win XP系统[多图]图片7
像这样的文件应该使用这个参数来安装:
/Q /M /Z
像这样的文件要使用这个参数来安装:
/Q:A /R:N

  接着把文件保存为hotfixes.cmd,或者添加到你已有的批处理文件中。然后这些补丁程序就会一个接一个地全自动安装好了,这过程中并不需要用户的参与。

  你同样可以使用这个方法安装IE6和OE6 的累积性补,还有JScript 5.6升级。如果你遇到了一些职能通过WindowsUpdate下载的补丁程序,你也可以试试通过Corporate WindowsUpdate 网站下载它们。 无人值守安装Windows 驱动程序

  如果你每次装好系统后都要升级大量的驱动程序,那么本段就向你演示了怎样在安装Windows的同时升级设备的驱动程序,而不是仅安装光盘上drivers.cab文件中保存的过时驱动程序。这并不像你想象的那么难!

  打开winnt.sif 然后在[Unattended] 字段下添加以下两行内容(驱动程序的路径和名称只是一个范例,你可以根据你的实际情况更改):

  DriverSigningPolicy=Ignore
  OemPnPDriversPath="Drivers\Catalyst3_6\2KXP_INF;Drivers\Catalyst3_6\tv_out\WDM_XP"

  说明:

  OemPnPDriversPath="Drivers\Catalyst3_6\2KXP_INF;Drivers\Catalyst3_6\tv_out\WDM_XP"
  在这一行中你可以告诉安装程序在哪里查找比光盘中自带的驱动版本更新的驱动程序目录,如果找到了更新的驱动这些驱动就会被用来替代操作系统自带的那些。我们可以用半角冒号来分隔不同的目录。

  DriverSigningPolicy=Ignore
  这一行可以使得安装程序强制安装没有经过微软数字签名认证(WHQL)的驱动,通常这个命令都是跟OemPnPDriversPath一起使用的。

  驱动程序是怎样安装的 (以 ATI Catalyst 为例)

  如果你没有ATI的镭显卡也不用担心,通过本段你就可以了解怎样安装其他设备的驱动程序了。

  1. 下载最新的 ATI Catalyst 驱动程序

  2. 从 .exe 文件中解压缩所有文件到一个文件夹,例如:C:\XPCD\$OEM$\$1\Drivers\Catalyst3_6\

  3.找到 *.inf 文件,它们应当在当前文件夹或者其子文件夹中,ATI Catalyst 3.6 驱动的.inf 文件在这个子文件夹中: C:\XPCD\$OEM$\$1\Drivers\Catalyst3_6\2KXP_INF

无人值守安装Win XP系统[多图]图片8 无人值守安装Win XP系统[多图]图片9

  正如你在上面的截图中所看到的(点击放大),inf文件保存在 2KXP_INF 文件夹中。
  4. winnt.sif 应该是这样的(用红色边框标记出的部分):

无人值守安装Win XP系统[多图]图片10

  你可以看到,在批处理文件中指向的路径是inf文件所在的文件夹,we不是inf文件本身。保存winnt.sif文件,这样你就完成了。对于其他类型的设备,你同样可以按照上面的方法来自动安装驱动程序。

  不过在安装SB Live!声卡的驱动时就没有这么幸运了,似乎该声卡的驱动程序只能通过exe文件安装而不是inf文件(然而直接通过运行安装程序也许同样可以全自动无人值守安装好该声卡的驱动,只不过我还没有尝试过)。

  全自动破解 UXTheme.dll 文件

  如果我们在系统安装的时候就破解好UXTheme.dll文件,那就不用以后重启动到命令行安全模式下,然后再字符界面中更换文件了。一起来看看吧!

  下载: UXTheme_xpsp1.zip

  解压缩 UXTheme.dll 到C:\XPCD\$OEM$\$1\install\uxtheme\

无人值守安装Win XP系统[多图]图片11

  然后在批处理文件中添加如下命令:

  ECHO.
  ECHO Copying patched UXTheme.dll...
  REN %systemroot%\System32\dllcache\uxtheme.dll uxtheme.old
  COPY "%systemdrive%\Install\uxtheme\uxtheme.dll" "%systemroot%\System32\dllcache\"
  REN %systemroot%\System32\uxtheme.dll uxtheme.old
  COPY "%systemdrive%\Install\uxtheme\uxtheme.dll" "%systemroot%\System32\"

无人值守安装Win XP系统[多图]图片12
点击放大

  你也可以用这个方法更换很多系统文件,例如msgina.dll 和shell32.dll。 自动调整注册表设置

  在本页中,我们会教你怎样把最常用的注册表调整方法组合到一个.reg文件中然后统一执行。这样在启动过程中你就可以禁止漫游windows XP 的运行,或者禁用语言栏。

  如果准备这样做,把下列命令粘贴到你的批处理文件中:

  ECHO.
  ECHO Applying Registry Tweaks...
  REGEDIT /S %systemdrive%\install\RegTweaks.reg

  接下来,打开记事本,新建一个名为RegTweaks.reg的文件并保存到C:\XPCD\$OEM$\$1\install\

  确认你保存的不是RegTweaks.reg.txt (这是一个最常见的错误)

  下面,你可以看看我最喜欢的注册表调整。但是那些还不是全部,建议你访问Kelly's XP Corner,那里有更多好用的注册表调整方法。建议你直接把下面的内容复制出来然后粘贴到你自己的RegTweaks.reg文件中去,这样你就可以清楚地看到具体由哪些命令,他们都起到什么作用 (注意:以下的文件中关于自动登录的内容需要你按照自己的实际情况添加你的用户名和密码)。

  完成后别忘了保存 RegTweaks.reg 文件。 结束工作

  对于不安装额外程序(只是用了一个无人值守安装的winnt.sif文件)的人,你们要做的就是复制winnt.sif 文件到C:\XPCD\i386\ 目录下,然后把批处理文件复制到C:\XPCD\$OEM$\$1\install\ (并且在winnt.sif文件的[GuiRunOnce]字段下添加批处理文件的路径),然后把C:\XPCD\目录下的内容都复制到一张光盘上。这样安装文件就可以根据预先创建的应答文件进行一个全自动的无人值守安装了。

  F对于还要安装额外程序的人,首先要确保Winnt.sif文件在C:\XPCD\i386\文件夹中,并且批处理文件在C:\XPCD\$OEM$\$1\install\ 中(并且在winnt.sif文件的[GuiRunOnce]字段下添加批处理文件的路径),然后确保$OEM$ 文件夹跟i386 文件夹是并列的,而不是在i386 文件夹中。

  例如:
  C:\XPCD\i386\
  C:\XPCD\$OEM$\

  而不是:
  C:\XPCD\i386\$OEM$\

  把C:\XPCD\ 目录下的所有文件都刻录到光盘上,别忘了根据这两篇文章的方法使该光盘可以引导系统:
   The Elder Geek Windows Help.net

  如果你对WinISO软件比较熟悉,为了节省时间你也许可以使用这个方法:下载这个空白的可引导的XP ISO文件,在WinISO中打开它,然后把C:\XPCD\目录下的内容拖动到WinISO界面上,然后保存ISO。这样的ISO文件就可以在常见的刻录软件中以光盘镜像的形式刻录了。而你也可以在Virtual PC / VMWare等虚拟机软件中载入ISO文件做测试。

  如果你喜欢在字符界面下安装时手工制定一个分区来安装并选择袭击想要的文件系统,请确保你的winnt.sif文件的[Data]和[Unattended]字段下有如下的参数:

  [Data]
  AutoPartition=0

  [Unattended]
  Repartition=No

  然后,当安装程序询问你选择哪块硬盘/分区安装时,请删除当前分区并重新创建,这样你就可以选择该分区是用的文件系统了。如果你没有这样做,安装程序就会直接开始安装系统,并且直接使用当前该分区是用的文件系统。

原文地址:https://www.cnblogs.com/cosiray/p/1701567.html