WINPE自启动脚本Winpeshl.ini 和Startnet.cmd 您所在的位置:网站首页 开机启动ghost怎么设置 WINPE自启动脚本Winpeshl.ini 和Startnet.cmd

WINPE自启动脚本Winpeshl.ini 和Startnet.cmd

2024-06-27 03:46| 来源: 网络整理| 查看: 265

官方文档: https://msdn.microsoft.com/zh-cn/library/windows/hardware/dn938394(v=vs.85).aspx 一,Winpeshl.ini

使用 Windows 预安装环境 (Windows PE) 中的 Winpeshl.ini 文件将默认命令提示符替换为外壳应用程序或其他应用。例如,你的外壳应用可能会为部署工程师提供 GUI,以便选择安装 Windows 的方法。

若要添加自定义应用,请创建一个名为 Winpeshl.ini 的文件,然后将它放置在自定义 Windows PE 映像的 %SYSTEMROOT%\System32 中。

示例

[LaunchApp] AppPath = %SYSTEMDRIVE%\Fabrikam\shell.exe [LaunchApps] %SYSTEMDRIVE%\Fabrikam\app1.exe %SYSTEMDRIVE%\Fabrikam\app2.exe, /s "C:\Program Files\App3"

Wpeshl.ini 文件可能具有以下两个部分中的一个部分或兼而有之:[LaunchApp] 和 [LaunchApps]。[LaunchApp] 和 [LaunchApps] 中列出的应用以出现的顺序运行,并且在上一个应用终止之后才开始运行。

LaunchApp

将 AppPath 条目设置为应用的路径。可以使用完全限定路径,也可以包含环境变量(例如 %SYSTEMDRIVE%)来描述路径。

注意  

[LaunchApp] 条目可能仅包含一个应用。

不能指定超过 250 个字符的命令。

不能使用 LaunchApp 指定任何命令行选项。

 

LaunchApps

使用 [LaunchApps] 部分运行带命令行选项的应用。

注意  

LaunchApps 支持运行应用,但不支持常见脚本命令。相反,若要运行命令,请添加启动脚本 (startnet.cmd)。有关详细信息,请参阅 WinPE:装载和自定义。

不能指定超过 250 个字符的命令。

若要向应用添加命令行选项,请进行以下操作:在以下应用名称后添加逗号 (,):%SYSTEMDRIVE%\Fabrikam\app2.exe,

二,Startnet.cmd

Windows PE (WinPE) 第一次运行时使用 Wpeinit 和 Startnet.cmd 运行启动脚本。

Wpeinit 将日志消息输出到 C:\Windows\system32\wpeinit.log。

Startnet.cmd

你可以通过使用 Startnet.cmd 在 Windows PE 中添加自定义的命令行脚本。默认情况下,Windows PE 包括位于自定义 Windows PE 映像的 %SYSTEMROOT%\System32 中的 Startnet.cmd 脚本。

Startnet.cmd 将启动 Wpeinit.exe。Wpeinit.exe 将安装即插即用设备、处理 Unattend.xml 设置并加载网络资源。

有关详细信息,请参阅 WinPE:装载和自定义。

三,Wpeinit 命令行选项

下列命令行选项可用于 Wpeinit:

Wpeinit [-unattend:]

示例:

复制 Wpeinit –unattend:"C:\Unattend-PE.xml" 四,Wpeutil 命令行选项

Windows® PE 实用工具 (Wpeutil) 是一个能够使你在 Windows PE 会话期间运行命令的命令行工具。例如,你可以关闭或重新启动 Windows PE、启用或禁用防火墙、设置语言设置以及初始化网络。

Wpeutil 命令行选项

Wpeutil 使用以下约定。

Wpeutil {命令} [argument]

例如:

复制 Wpeutil Shutdown Wpeutil Enablefirewall Wpeutil SetMuiLanguage de-DE 注意  

Wpeutil 每行只能接受一个命令。

  命令说明

CreatePageFile [/path=] [/size=]

将页面文件创建为指定的路径和大小。默认路径为 C:\pagefile.sys,默认大小为 64 MB。至少要指定一个选项。例如:

复制 Wpeutil CreatePageFile /path=C:\pagefile.sys

-或-

复制 Wpeutil CreatePageFile /path=C:\pagefile.sys /size=128 要点  

如果存在页面文件,则必须将 /CreatePageFile 选项设置为等于或大于页面文件的当前大小,否则命令将会失败。

 

DisableExtendedCharactersForVolume

禁用包含 path on target volume 的卷中的 DOS 兼容文件名称(8.3 格式)的扩展字符支持。此命令只适用于 NTFS 卷。path on target volume 必须指定卷的根目录。例如:

复制 Wpeutil DisableExtendedCharactersForVolume C:\

如果禁用,使用扩展字符创建的全部文件的名称将转换为短文件名。

DisableFirewall

禁用防火墙。例如:

复制 Wpeutil DisableFirewall

EnableExtendedCharactersForVolume

允许包含 path on target volume 的卷中的 8.3 格式文件名称中包含扩展字符。此命令只适用于 NTFS 卷。path on target volume 必须指定卷的根目录。例如:

复制 Wpeutil EnableExtendedCharactersForVolume C:\ 注意  

如果你正在安装的操作系统所用语言中包含已默认启用的扩展字符,如 ja-JP 或 ko-KR,或使用的 Windows PE 拷贝所用语言不包含启用的扩展字符,如 en-US,则安装会导致在首次启动时出现 Chkdsk 错误。在安装至该卷前启用此选项能够避免运行 Chkdsk 命令。

 

EnableFirewall

启用防火墙。例如:

复制 Wpeutil EnableFirewall

InitializeNetwork

初始化网络组件和驱动程序,并设置计算机名为一个随机选择的值。例如:

复制 Wpeutil InitializeNetwork

ListKeyboardLayouts

列出给定区域设置 ID (LCID) 值的受支持的键盘布局(名称和 ID)。在注册表中,键盘布局也会在以下项中得到更新: HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE\KeyboardLayouts。例如:

复制 Wpeutil ListKeyboardLayouts 0x0409

-或-

复制 Wpeutil ListKeyboardLayouts 1033

有关有效区域设置 ID 列表,请参阅区域设置 ID (LCID) 表。

Reboot

重新开始当前 Windows PE 会话。例如:

复制 Wpeutil Reboot

SaveProfile

停止记录并将自定义配置文件保存至用户之前使用 Dism /enable-profiling 命令指定的位置。有关 /enable-profiling 命令行选项的详细信息,请参阅 DISM Windows PE 服务命令行选项。例如:

复制 Wpeutil SaveProfile profile_file_name "short description"

SetKeyboardLayout

在当前 Windows PE 会话中设置键盘布局。此设置将对此命令成功后的进程生效。若要获得受支持键盘布局列表,输入:

复制 ListKeyboardLayouts LCID

例如,若要设置 en-US 键盘:

复制 Wpeutil SetKeyboardLayout 0409:00000409

SetMuiLanguage [;]

设置语言。 使用国际语言代码格式(例如,en-US 表示美国英语)。可以按照优先顺序指定多个语言,用分号分隔。例如:

复制 Wpeutil SetMuiLanguage de-DE;en-US

SetUserLocale [;]

设置用户区域设置。 使用国际语言代码格式(例如,en-US 表示美国英语)。可以按照优先顺序指定多个语言,用分号分隔。例如:

复制 Wpeutil SetUserLocale de-DE;en-US

Shutdown

关闭当前 Windows PE 会话。例如:

复制 Wpeutil Shutdown 注意  

你也可以在命令提示窗口进行以下操作:

单击“关闭”按钮

键入 EXIT

 

UpdateBootInfo

使用与 Windows PE 启动方式相关的信息填充注册表。

运行此命令后,请查询注册表。例如:

复制 wpeutil UpdateBootInfo reg query HKLM\System\CurrentControlSet\Control /v PEBootType

此操作的结果在加载其他驱动程序支持之后可能会改变。

若要确定 Windows PE 启动的位置,请检查以下项:

PEBootType:Error、Flat、Remote、Ramdisk:SourceIdentified、Ramdisk:SourceUnidentified、Ramdisk:OpticalDrivePEBootTypeErrorCode:HRESULT 代码 PEBootServerName:Windows 部署服务服务器名称 PEBootServerAddr:Windows 部署服务服务器 IP 地址 PEBootRamdiskSourceDrive:源驱动器号(如果有)。PEFirmwareType:固件启动模式:BIOS 为 0x1,UEFI 为 0x2。

如果你未启动 Windows 部署服务,则确定 Windows PE 启动位置的最佳方法是首先检查 PEBootRamdiskSourceDrive 注册表项。如果不存在此注册表项,则扫描正确 PEBootType 的驱动器,并查找用于识别启动驱动器的某种标记文件。

WaitForNetwork

等待网卡初始化。在创建脚本时使用此命令,以确保在继续操作前网卡已完全初始化。

WaitForRemovableStorage

在 Windows PE 启动序列中,在初始化可移动存储设备(如 USB 硬盘驱动器)之前,此命令将被阻止。例如:

复制 Wpeutil WaitForRemovableStorage 注意  

WaitForRemovableStorage 的拼写正确。

五,startnet命令详解

1.打开startnet.cmd里面显示winpeinit,即当你引导进入WINPE会自动运行startnet.cmd然后进入WINPE,部署系统就需要往startnet.cmd里面添加指令了。

2.修改 Startnet.cmd 脚本以包括自定义命令。该文件位于 C:\WinPE_amd64\mount\Windows\System32\Startnet.cmd。

@ECHO off @REM @REM Initialize WinPE @ECHO wpeinit WPEINIT @ECHO. @ECHO ***************************************************************** @ECHO call wpeutil UpdateBootInfo WPEUTIL UpdateBootInfo @ECHO. SET WinPEREG="HKLM\System\CurrentControlSet\Control" SET WinPEKey=PEBootRamdiskSourceDrive SET WinPESource= @ECHO. @REM Get volume letter of USB Key @ECHO for /f "skip=2 tokens=3" %%A in ('call Reg query %WinPEREG% /v %WinPEKEY%') do set WinPESource=%%A FOR /f "skip=2 tokens=3" %%A IN ('call Reg query %WinPEREG% /v %WinPEKEY%') DO SET WinPESource=%%A @ECHO WinPESource is drive letter "%WinPESource%" @ECHO. @ECHO. IF "%WinPESource%"=="" ECHO Drive letter NOT found.&& CALL :FINDDRIVE @ECHO. @ECHO. ECHO WinPESource is "%WinPESource%" @ECHO. @ECHO ***************************************************************** @ECHO Call and run main.cmd on the USB Key @ECHO ***************************************************************** @ECHO call %WinPESource%Scripts\main.cmd CALL %WinPESource%Scripts\main.cmd @ECHO. GOTO :END :ERROR @ECHO. @ECHO An error has been detected. COLOR 4F @ECHO. GOTO :END :FINDDRIVE @ECHO. @ECHO Trying to find drive letter using diskpart @ECHO. @ECHO Lis Vol>x:\FindVol.txt @ECHO. @ECHO Running Diskpart to get Volume letters @ECHO. DISKPART /s x:\FindVol.txt>x:\VolumeList.txt @ECHO. @ECHO Parsing list to find WinPE @ECHO. FOR /f "skip=8 tokens=3-4" %%A IN (x:\VolumeList.txt) DO ( @ECHO Checking drive letter %%A has volume label of %%B IF /i "%%B"=="WINPE" SET WinPESource=%%A ) SET WinPESource=%WinPESource%:\ GOTO :EOF :END



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有