WinPE Network Drivers: Initializing and adding drivers

The Wpeutil command initializes the Windows PE (WinPE) network drivers as soon as WinPE boots. The default WinPE image includes support for many popular network adapters, and supports many of the same networking commands as in Windows. Windows PE includes a basic set of network drivers for many popular network adapters, and supports many of the same networking commands as in Windows.

Networking in WinPE has the following limitations:

  • The supported methods of connecting to file servers are TCP/IP and NetBIOS over TCP/IP. Other methods, like the Internetwork Packet Exchange/Sequenced Packet Exchange (IPX/SPX) network protocol are not supported.
  • Distributed File System (DFS) name resolution is supported for stand-alone namespaces only. It doesn't support domain namespaces. Stand-alone DFS namespaces allow for a DFS namespace that exists only on the local PC and therefore doesn't use Active Directory Domain Services (AD DS).
  • General wireless networking functionality is not supported in WinPE.
  • Connecting to an IPv4 network from Windows PE on an IPv6 network is not supported.
  • Starting with WinPE for Windows 10, version 1709, SMB1 protocol is disabled by default. You can enable SMB1 support by running dism.exe /enable-feature /featurename=SMB1Protocol-client.

To connect to another PC or shared folder on a network

  1. While in Windows PE, you can connect (or map) to a shared network folder by using the net use command. If you’re connecting to a domain-joined PC, Windows PE prompts for a username and password.

    net use n: \\server\share
    
  2. You can also host Windows PE from a network by using Preboot Execution Environment (PXE), which is part of Windows Deployment Services.

Troubleshooting networking problems

  1. Try adding a driver for your network device.

    We recommend WinPE: Mount and Customize, especially for any driver that requires a reboot during the installation process.

    You may also be able to use the Drvload Command-Line Options to load some drivers while Windows PE is running. However, any updates made to the registry during the installation process will not persist after a reboot, even when Windows PE is running in a WinPE: Install on a Hard Drive (Flat Boot or Non-RAM).

  2. Run Wpeinit and Startnet.cmd: Using WinPE Startup Scripts to initialize the network. By default, wpeinit runs when Windows PE starts.

  3. In some cases, you may need to configure firewall settings on the PC that you are trying to connect to. Windows PE supports IPSec configuration.

  4. Note, you cannot join Windows PE to a domain, or run Windows PE as a server. For more information, see WinPE for Windows 10.

To connect to a wired network using 802.1x authentication protocols

  1. Create a custom Windows PE image that includes the WinPE-Dot3Svc optional component.

  2. Boot a PC to Windows PE.

  3. Start the dot3svc service.

    net start dot3svc
    
  4. Add a LAN profile. For example:

    netsh lan add profile="G:\EthernetLANProfile.xml"
    

    Sample LAN Profile:

    <?xml version="1.0"?>
    <!-- Sample LAN profile: EthernetLANProfile.xml" -->
    <LANProfile xmlns="https://www.microsoft.com/networking/LAN/profile/v1">
      <MSM>
        <security>
          <OneXEnforced>false</OneXEnforced>
          <OneXEnabled>true</OneXEnabled>
          <OneX xmlns="https://www.microsoft.com/networking/OneX/v1">
            <cacheUserData>true</cacheUserData>
            <authMode>user</authMode>
            <EAPConfig><EapHostConfig 
              xmlns="https://www.microsoft.com/provisioning/EapHostConfig"><EapMethod><Type 
              xmlns="https://www.microsoft.com/provisioning/EapCommon">25</Type><VendorId 
              xmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorId><VendorType 
              xmlns="https://www.microsoft.com/provisioning/EapCommon">0</VendorType><AuthorId 
              xmlns="https://www.microsoft.com/provisioning/EapCommon">0</AuthorId></EapMethod><Config 
              xmlns="https://www.microsoft.com/provisioning/EapHostConfig"><Eap 
              xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
            <Type>25</Type><EapType 
              xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1">
            <ServerValidation>
              <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
              <ServerNames></ServerNames>
              <TrustedRootCA>1a 2b 3c 4d 56 78 90 aa bb cc dd ee ff 1a 2b 3c 4d 5e 6f</TrustedRootCA>
              </ServerValidation><FastReconnect>true</FastReconnect>
              <InnerEapOptional>false</InnerEapOptional><Eap 
                xmlns="https://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
              <Type>26</Type><EapType 
                xmlns="https://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1">
              <UseWinLogonCredentials>false</UseWinLogonCredentials></EapType></Eap>
              <EnableQuarantineChecks>false</EnableQuarantineChecks>
              <RequireCryptoBinding>false</RequireCryptoBinding><PeapExtensions>
              <PerformServerValidation 
                xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false
              </PerformServerValidation><AcceptServerName 
                xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false
                </AcceptServerName><PeapExtensionsV2 
                xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">
              <AllowPromptingWhenServerCANotFound 
                xmlns="https://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV3">true
              </AllowPromptingWhenServerCANotFound></PeapExtensionsV2></PeapExtensions></EapType>
            </Eap></Config></EapHostConfig></EAPConfig>
          </OneX>
        </security>
      </MSM>
    </LANProfile>
    
  5. Link the EAP User Data with the profile. For example:

    netsh lan set eapuserdata filename="g:\EAP_UserData.xml" alluser=yes Interface="ethernet"
    

    Sample EAP User Data file:

    <?xml version="1.0"?>
    <!-- Sample EAP user data: EAP_UserData.xml" -->
    <EapHostUserCredentials 
      xmlns="https://www.microsoft.com/provisioning/EapHostUserCredentials" 
      xmlns:eapCommon="https://www.microsoft.com/provisioning/EapCommon" 
      xmlns:baseEap="https://www.microsoft.com/provisioning/BaseEapMethodUserCredentials">
      <EapMethod>
        <eapCommon:Type>25</eapCommon:Type>
        <eapCommon:AuthorId>0</eapCommon:AuthorId>
      </EapMethod>
      <Credentials
        xmlns:eapUser="https://www.microsoft.com/provisioning/EapUserPropertiesV1" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:baseEap="https://www.microsoft.com/provisioning/BaseEapUserPropertiesV1" 
        xmlns:MsPeap="https://www.microsoft.com/provisioning/MsPeapUserPropertiesV1" 
        xmlns:MsChapV2="https://www.microsoft.com/provisioning/MsChapV2UserPropertiesV1">
        <baseEap:Eap>
          <baseEap:Type>25</baseEap:Type>
          <MsPeap:EapType>
            <MsPeap:RoutingIdentity>onex\administrator</MsPeap:RoutingIdentity>
            <baseEap:Eap>
              <baseEap:Type>26</baseEap:Type>
              <MsChapV2:EapType>
                <MsChapV2:Username>actualuser</MsChapV2:Username>
                <MsChapV2:Password>actualpassword</MsChapV2:Password>
                <MsChapV2:LogonDomain>actualdomain</MsChapV2:LogonDomain>
              </MsChapV2:EapType>
            </baseEap:Eap>
          </MsPeap:EapType>
        </baseEap:Eap>
      </Credentials>
    </EapHostUserCredentials>
    
  6. For more info, see How to enable computer-only authentication for an 802.1X-based network in Windows Vista, in Windows Server 2008, and in Windows XP Service Pack 3.

WinPE for Windows 10

WinPE: Mount and Customize

Wpeinit and Startnet.cmd: Using WinPE Startup Scripts

Drvload Command-Line Options