在 Windows PE 中禁用网络连接

在 Windows PE 中禁用网络连接

我正在使用 Microsoft 自动化安装工具包 10(主机是 Windows 10)为目标平台生成 WindowsPE 启动棒amd64

因为我不需要 WinPE 内部的网络连接,所以我想完全安全地禁用它们。

我大致了解WinPE 启动链所以我知道我可以通过配置文件允许wpeinit我禁用网络。10年未解之谜剩下的问题是:这个文件应该如何构造?下面是一个最小的例子

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <EnableNetwork>false</EnableNetwork>
</unattend>

不会抛出错误消息,但也无法工作。它从内部调用startnet.cmd如下:

wpeinit -unattend:"%SystemRoot%\system32\Unattend.xml"

虽然我也 看到 wpeinit /unattend: ...

日志%SystemRoot%\system32\wpeinit.log文件指出:

2017-08-02 13:26:16.061,信息 WPEINIT 正在处理无人值守文件 [X:\windows\system32\Unattend.xml]

...

2017-08-02 13:26:16.295,信息 ==== 初始化网络访问并应用配置 ==== 2017-08-02 13:26:16.295,信息未指定 EnableNetwork 无人值守设置;此上下文的默认操作是启用网络支持。

假如 例子对我也没什么帮助,我想这可能是为了自动安装,而不是配置。

我通过以下命令验证网络是否已禁用

netsh interface ipv4 show interfaces
netsh interface ipv6 show interfaces

有可能通过 netsh 禁用连接喜欢

netsh interface set interface "Local Area Connection" DISABLED

但我担心 WinPE 可能已经尝试访问 DHCP 或者在短时间内可以通过网络访问。

那么如何实现无网络 WinPE?谢谢!

由于我需要使用其驱动程序初始化设备,所以不能wpeinitstartnet.cmd选项中调用吗?一些帖子建议如此。

答案1

好啦!我太接近成功了,终于让它工作了(一个参考问题中实际上有答案,仅适用于x86)。

重要的经验教训:

不用多说,这是Unattend.xml通过生成过程复制到的%SystemRoot%\system32

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="AMD64">
            <EnableNetwork>false</EnableNetwork>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

通过修改后的startnet.cmd

wpeinit /unattend="%SystemRoot%\system32\Unattend.xml"

这会导致以下日志条目:

2017-08-02 14:51:20.747,信息 WPEINIT 正在处理无人参与文件 [X:\windows\system32\Unattend.xml]

...

2017-08-02 14:51:20.982,信息 ==== 初始化网络访问并应用配置 ====

2017-08-02 14:51:20.982,信息网络支持将不会启用。

2017-08-02 14:51:20.982,信息状态:成功(0x00000001)

注意力:文件夹中文件的唯一存在导致对其进行评估。因此,如果文件位于该位置,则System32参数 to实际上不是必需的。wpeinit

相关内容