如何在 Windows 安装期间在第 3 阶段开始和第 5 阶段开始之间的某个时间运行 cmd 脚本?我需要在硬件检测启动之前将硬件相关文件从 USB 驱动器复制到 C: 驱动器。我使用在 WinPE 中运行的 wmic 来确定硬件。
编辑:如果有人感兴趣......
在 Boot.Wim\Index2 中:
- 将 setup.exe 重命名为 usetup.exe
- 修改Boot.Wim-Index:2-Root\Windows\system32\startnet.cmd
wpeinit start /w usetup.exe /unattend:yourfile.xml /noreboot do what you want here wpeutil reboot
使用它来操作文件。如果您需要在 Windows 中工作,请将脚本添加到 \windows\setup\scripts\SetupComplete.cmd 文件中。
请注意,SetupComplete.cmd 是隐藏运行的,因此请确保它在无人干预的情况下运行。
答案1
根据这个Microsoft Technet 文章您可以在第 3 阶段结束时通过执行以下操作来运行自定义脚本:
Windows 安装程序完成后,您可以通过向 %WINDIR%\Setup\Scripts\SetupComplete.cmd 文件添加命令来进行进一步的自定义。此文件使您能够在用户登录之前安装其他应用程序、运行自定义 Windows 脚本 (cscript/wscript) 或对系统进行其他修改。
Setupcomplete.cmd 文件中的命令以本地系统权限执行。
在 Windows 安装之后,但在登录屏幕出现之前,Windows 安装程序会在 %WINDIR%\Setup\Scripts\ 目录中搜索 SetupComplete.cmd 文件。
如果找到 SetupComplete.cmd 文件,则执行该文件。否则,安装将正常继续。Windows 安装程序会将该操作记录在 Setupact.log 文件中。
您无法重新启动系统并继续运行 SetupComplete.cmd。
执行 SetupComplete.cmd 后,安装程序不会验证脚本中的任何退出代码或错误级别。
Setupcomplete.cmd 的功能与 RunSynchronous 和 RunAsynchronous 命令的不同之处在于,Setupcomplete.cmd 在 Windows 安装程序完成后运行,而 RunSynchronous 和 RunAsynchronous 命令在 Windows 安装程序期间运行。
因此,无论您要运行什么脚本,只需将其添加到“SetupComplete.cmd”文件中,并将其放置在 Windows 映像中的 %WINDIR%\Setup\Scripts 中即可。只要安装过程找到该脚本,它就会自动运行它。
(抱歉复制/粘贴,但实际上没有太多内容。)
编辑
需要注意的是,如果您要复制的文件是硬件驱动程序文件,您可以直接将它们添加到 Windows PE 映像或 Windows 映像本身,而不必担心脚本。以下是Microsoft Technet 文章告诉你如何去做。(我不会复制/粘贴它,因为有点太多了。)
如果只是其他常规文件(图像、文档等),您也可以将它们添加到 Windows 映像中的任何文件夹中。以下是使用 DSIM 执行此操作的方法:Microsoft Technet 文章本文涉及 Windows 8/8.1 库,但适用于 Windows 7 的步骤相同。
我会避免使用只用于复制文件的脚本(如果您的脚本只用于复制文件)。我会将文件或驱动程序添加到映像中,这样您就不必担心脚本因某种原因失败时会发生什么。
编辑2
根据您下面的评论,并且您声明您在 WinPE 期间使用 WMIC 来确定硬件,您可能能够将脚本添加到 WinPE,如本文所述Microsoft Technet 文章。我认为现在复制文件可能还为时过早,但我必须进行测试才能确定。我知道我已经将网络接口的驱动程序添加到 WinPE 映像中,但这与您所做的有点不同。
然而,我认为最好的选择是使用 Microsoft 部署工具包 (MDT) 并根据硬件配置文件和/或计算机品牌/型号设置驱动程序。它专为此类场景而设计,应该可以让您自定义何时何地安装哪些驱动程序。这可能比仅使用 Windows AIK 稍微复杂一些,但如果您的驱动程序需求如此具体,我认为您会得到更好的结果。
我第一次开始使用 MDT 时遵循的教程如下:
- WindowsNetworking.com - 使用 AIK 部署 Vista- 虽然这适用于 Vista,但大多数步骤对于 7 是相同的。根据您对 AIK 的熟悉程度,您可以跳到第 24 部分,该部分开始讨论 MDT。
- WindowsNetworking.com - 使用 AIK 部署 7- 这几乎是上一个链接的延续,因为他没有详细介绍第一个链接,而只是介绍了 Vista AIK 和 7 AIK 之间的变化。有关使用 MDT 管理驱动程序的部分从第 23 部分开始。我认为第 25 和 26 部分对您来说是最重要的。
我认为这将为您提供比使用脚本更好的部署选项,因为我认为您无法在想要运行它时运行自定义脚本。希望这对您有所帮助。