Networking

在 Windows PE 中禁用網路連接

  • August 11, 2017

我正在為amd64目標平台生成帶有 Microsoft 自動化安裝工具包 10(主機是 Windows 10)的 WindowsPE 啟動棒。

因為我不需要來自 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,Info 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呢?謝謝!

因為我需要使用其驅動程序初始化的設備,所以沒有wpeinit從選項呼叫?一些文章建議如此。startnet.cmd

赫里卡!我是如此接近以至於我終於設法讓它工作(問題中的一個參考實際上有答案,僅用於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,Info 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導致其評估。wpeinit因此,如果文件位於該位置,則實際上不需要參數 to 。

引用自:https://serverfault.com/questions/866479