Unified Windows PE 3.1 builder script for WAIK, with wifi and EFI support

WinPE-with-WLAN

It’s useful to have wifi support with WPA/WPA2 in Windows PE for occasions where you may want to perform an OS install or a salvage on a machine without ethernet built-in: for instance a MacBook Air running Windows or a Sony Vaio P when you don’t have the breakout dongle to hand.

When I started researching wifi support I found that the people who had clearly got it working seemed to be unwilling to share their work. One tool for the job, Holger’s PE Network Manager did not work for me at all, and judging from the dates of the files it had been created for older versions of Windows PE than the current one. There are many third party Windows PE ‘builder’ apps out there that completely replace the official Microsoft WAIK tools. However these seem more aimed at hobbyists than pros and tend to over complicate by adding features that a deployment pro does not really need. Since they’re not-so-trustworthy compiled binaries I don’t feel comfortable using them for work purposes. I decided to carefully work out for myself which registry entries and which additional files are required. There are surprisingly few.

The following unified script will use the standard WAIK tools to create both x86 and x64 builds, or either one individually, and is designed to be run by double-clicking it. Notice the defined variables at the start, particularly the %SOURCE% folder. The script expects the following folders:

  • %SOURCE%\scripts\WinPE – OS build scripts, wifi config XML, optional CA certificates
  • %SOURCE%\drivers\WinPE-x86\CURRENT – drivers
  • %SOURCE%\drivers\WinPE-x64\CURRENT
  • %SOURCE%\tools\WinPE-x86 – optional tools such as GImageX, or apps from portableapps.com
  • %SOURCE%\tools\WinPE-x64
  • %SOURCE%\tools\WinPE-x86\WLAN – the WLAN system files see highlighted section in main script below
  • %SOURCE%\tools\WinPE-x64\WLAN
 

It also requires your WAIK installation to be updated to Windows PE 3.1 using the WAIK supplement for Windows 7 SP1.

I had originally wanted to connect WinPE clients to a WPA-Enterprise network but although Windows PE now supports 802.1x, it appears to work only for wired connections (see my comment on that post).

There is no GUI to manage the WLAN service, but I did find the necessary registry mod to enable the hooks already present in netsh.exe. You will need to use a working Windows 7 PC which is configured for the WLAN of your choice, then export its profile. You cannot connect to a wifi network in Windows PE without having done this. The PSK must not be encrypted since it will be imported onto a different machine (you need to run this with Administrator privileges or else the key parameter will be ignored):

netsh wlan show profiles
netsh wlan export profile name="YOURWLANSSIDHERE" folder="C:\temp" key=clear

Copy this XML file into the folder %SOURCE%\scripts\WinPE in the build tree. When Windows PE boots, you simply type wifi. This wifi.cmd script which is built by the main script will automatically import any XML profiles, list the available wifi networks, and display some example netsh syntax:

netsh wlan connect name=YOURWLANSSIDHERE ssid=YOURWLANSSIDHERE
 

The script

Save as %SOURCE%\scripts\Build_WinPE.cmd

:: Build_WinPE.cmd
::
:: This script will build x86 and x64 Windows PE, automatically
:: collecting drivers from the relevant folders within the
:: unattended installation, building WIM and ISO images, and
:: will also upload the WIM images to the deployment server(s).
::
:: DO NOT cancel this script in progress as you can end up with
:: orphaned locks on files inside mounted WIM images which
:: usually require a reboot of the server to clear.
::

@echo off
setlocal ENABLEDELAYEDEXPANSION

::variables
     set SOURCE=G:\unattended
     set PE_TEMP=C:\temp
     ::WinPE feature pack locale
     set PL=en-US
     ::commma separated list for WDS_SERVERS
     set WDS_SERVERS=FILESERVER1,FILESERVER2
::end variables

if not exist "C:\Program Files\Windows AIK\Tools\PETools\*.*" (
     echo This script requires the Windows Automatic Install Kit to be installed
     echo Download it from http://www.microsoft.com/download/en/details.aspx?id=5753
     echo.
     pause
     goto :eof
)
if "%1"=="relaunch" (
     call :BUILD_WINPE %2 %3 %4
     goto :eof
)
if "%1"=="unmount" (
     :: use this if you have a problem with the script and there are WIMs still mounted
     dism /Unmount-Wim /MountDir:"%PE_TEMP%\WinPE-x86\mount" /discard
     dism /Unmount-Wim /MountDir:"%PE_TEMP%\WinPE-x64\mount" /discard
     goto :eof
)
:prompt
cls
set /P SELECTION=Build WinPE for which CPU architecture (x64, x86, both)? [x64]: 
if "%SELECTION%"=="" set SELECTION=x64
if "%SELECTION%"=="x64" (
     start "Building Windows PE for x64 - NEVER CANCEL THIS SCRIPT IN PROGRESS" cmd /c "%0" relaunch x64 amd64
     goto :eof
)
if "%SELECTION%"=="x86" (
     start "Building Windows PE for x86 - NEVER CANCEL THIS SCRIPT IN PROGRESS" cmd /c "%0" relaunch x86 i386
     goto :eof
)
if "%SELECTION%"=="b" set SELECTION=both
if "%SELECTION%"=="both" (
     ::opening both instances of this script simultaneously seems to cause race conditions with dism.exe
     start /wait "Building Windows PE for x86 - NEVER CANCEL THIS SCRIPT IN PROGRESS" cmd /c "%0" relaunch x86 i386 nopause
     start "Building Windows PE for x64 - NEVER CANCEL THIS SCRIPT IN PROGRESS" cmd /c "%0" relaunch x64 amd64
     goto :eof
)
goto :prompt

:BUILD_WINPE
set PE_ARCH=%1
set PE_ARCH_LONG=%2
echo on
set PATH=%PATH%;C:\Program Files\Windows AIK\Tools\PETools\;C:\Program Files\Windows AIK\Tools\%PROCESSOR_ARCHITECTURE%
set PATH=%PATH%;C:\Program Files\Windows AIK\Tools\Servicing
rd /s /q %PE_TEMP%\WinPE-%PE_ARCH%

::Microsoft haven't used consistent naming in WAIK
if "%PE_ARCH%"=="x86" set WAIK_ARCH=%PE_ARCH%
if "%PE_ARCH%"=="x64" set WAIK_ARCH=%PE_ARCH_LONG%

call copype.cmd %WAIK_ARCH% %PE_TEMP%\WinPE-%PE_ARCH%
::package path
set PP=%ProgramFiles%\Windows AIK\Tools\PETools\%WAIK_ARCH%\WinPE_FPs
::image path
set IP=%PE_TEMP%\WinPE-%PE_ARCH%\mount
echo on
dism /Mount-Wim /WimFile:"%PE_TEMP%\WinPE-%PE_ARCH%\winpe.wim" /Index:1 /MountDir:"%IP%"
dism /image:"%IP%" /Add-Package /PackagePath:"%PP%\winpe-scripting.cab" /PackagePath:"%PP%\%PL%\winpe-scripting_%PL%.cab" /PackagePath:"%PP%\winpe-wmi.cab" /PackagePath:"%PP%\%PL%\winpe-wmi_%PL%.cab" /PackagePath:"%PP%\winpe-mdac.cab" /PackagePath:"%PP%\%PL%\winpe-mdac_%PL%.cab" /PackagePath:"%PP%\WinPE-HTA.cab" /PackagePath:"%PP%\%PL%\WinPE-HTA_%PL%.cab" /PackagePath:"%PP%\WINPE-DOT3SVC.CAB" /PackagePath:"%PP%\%PL%\WINPE-DOT3SVC_%PL%.CAB"
dism /image:"%IP%" /Add-Driver /driver:"%SOURCE%\drivers\WinPE-%PE_ARCH%\CURRENT" /Recurse
copy "%ProgramFiles%\Windows AIK\Tools\PETools\%WAIK_ARCH%\bootsect.exe" "%IP%\Windows"
copy /y "%SOURCE%\scripts\WinPE\*.*" "%IP%\Windows\System32"
copy "%SOURCE%\tools\WinPE-%PE_ARCH%\*.*" "%IP%\Windows\System32"
copy "%ProgramFiles%\Windows AIK\Tools\%WAIK_ARCH%\*.*" "%IP%\Windows\System32"


::add WLAN components
reg load HKLM\PE-BUILD-SYSTEM "%IP%\Windows\System32\config\SYSTEM"
reg load HKLM\PE-BUILD-SOFTWARE "%IP%\Windows\System32\config\SOFTWARE"
set KEY=HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC
reg add %KEY% /v NextInstance /t REG_DWORD /d 1 /f
reg add %KEY%\0000 /v Service /t REG_SZ /d Wlansvc /f
reg add %KEY%\0000 /v Legacy /t REG_DWORD /d 1 /f
reg add %KEY%\0000 /v ConfigFlags /t REG_DWORD /d 0 /f
reg add %KEY%\0000 /v Class /t REG_SZ /d LegacyDriver /f
reg add %KEY%\0000 /v ClassGUID /t REG_SZ /d {8ECC055D-047F-11D1-A537-0000F8753ED1} /f
reg add %KEY%\0000 /v DeviceDesc /t REG_SZ /d "@%%SystemRoot%%\System32\wlansvc.dll,-257" /f
set KEY=HKLM\PE-BUILD-SYSTEM\ControlSet001\services\wlansvc
reg add %KEY% /v DisplayName /t REG_SZ /d "@%%SystemRoot%%\System32\wlansvc.dll,-257" /f
reg add %KEY% /v ErrorControl /t REG_DWORD /d 1 /f
reg add %KEY% /v Group /t REG_SZ /d TDI /f
reg add %KEY% /v ImagePath /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\svchost.exe -k LocalSystemNetworkRestricted" /f
reg add %KEY% /v Start /t REG_DWORD /d 2 /f
reg add %KEY% /v Type /t REG_DWORD /d 32 /f
reg add %KEY% /v Description /t REG_SZ /d "@%%SystemRoot%%\System32\wlansvc.dll,-258" /f
reg add %KEY% /v DependOnService /t REG_MULTI_SZ /d "nativewifip\0RpcSs\0Ndisuio\0Eaphost" /f
reg add %KEY% /v ObjectName /t REG_SZ /d LocalSystem /f
reg add %KEY% /v ServiceSidType /t REG_DWORD /d 1 /f
reg add %KEY% /v RequiredPrivileges /t REG_MULTI_SZ /d "SeChangeNotifyPrivilege\0SeImpersonatePrivilege\0SeAuditPrivilege\0SeTcbPrivilege\0SeDebugPrivilege" /f
reg add %KEY% /v FailureActions /t REG_BINARY /d 2c0100000000000000000000030000001400000001000000c0d4010001000000e09304000000000000000000 /f
reg add %KEY%\Enum /v 0 /t REG_SZ /d "Root\LEGACY_WLANSVC\0000" /f
reg add %KEY%\Enum /v Count /t REG_DWORD /d 1 /f
reg add %KEY%\Enum /v NextInstance /t REG_DWORD /d 1 /f
reg add %KEY%\Parameters /v ServiceDll /t REG_EXPAND_SZ /d "%%SystemRoot%%\System32\wlansvc.dll" /f
reg add %KEY%\Parameters /v ServiceDllUnloadOnStop /t REG_DWORD /d 1 /f
reg add %KEY%\Parameters /v ServiceMain /t REG_SZ /d WlanSvcMain /f
reg add HKLM\PE-BUILD-SOFTWARE\Microsoft\NetSh /v wlancfg /t REG_SZ /d wlancfg.dll /f
call :REG_MULTI_SZ-add "HKLM\PE-BUILD-SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost" LocalSystemNetworkRestricted wlansvc
xcopy /s "%SOURCE%\tools\WinPE-%PE_ARCH%\WLAN\*.*" "%IP%\Windows"
@echo off
:: These are the files that are required for WLAN (take them from Windows 7 machines of both CPU archs)
:: Put them in %SOURCE%\tools\WinPE-%PE_ARCH%\WLAN and create the same relative folder structure from C:\Windows onwards
:: so the file C:\Windows\inf\netnwifi.inf is copied to %SOURCE%\tools\WinPE-%PE_ARCH%\WLAN\inf\netnwifi.inf
::     C:\Windows\inf\netnwifi.inf
::     C:\Windows\inf\netvwififlt.inf
::     C:\Windows\inf\netvwifimp.inf
::     C:\Windows\l2schemas\wlan_policy_v1.xsd
::     C:\Windows\l2schemas\wlan_profile_v1.xsd
::     C:\Windows\l2schemas\wlanap_profile_v1.xsd
::     C:\Windows\schemas\availablenetwork\availablenetworkinfo.xsd
::     C:\Windows\system32\certutil.exe
::     C:\Windows\system32\wlanapi.dll
::     C:\Windows\system32\wlancfg.dll
::     C:\Windows\system32\wlanhlp.dll
::     C:\Windows\system32\wlanmsm.dll
::     C:\Windows\system32\wlansec.dll
::     C:\Windows\system32\wlansvc.dll
::     C:\Windows\system32\wlanui.dll
::     C:\Windows\system32\wlgpclnt.dll
::     C:\Windows\system32\drivers\nwifi.sys
::     C:\Windows\system32\drivers\vwififlt.sys
::     C:\Windows\system32\drivers\vwifimp.sys
::     C:\Windows\system32\en-US\certutil.exe.mui (or your locale's equivalent)
::     C:\Windows\system32\en-us\wlanapi.dll.mui
::     C:\Windows\system32\en-us\wlancfg.dll.mui
::     C:\Windows\system32\en-us\wlansvc.dll.mui
::     C:\Windows\system32\en-us\wlanui.dll.mui
::     C:\Windows\system32\en-us\wlgpclnt.dll.mui
echo on
reg unload HKLM\PE-BUILD-SYSTEM
reg unload HKLM\PE-BUILD-SOFTWARE
:: build wifi.cmd
(
     echo @echo off
     echo drvload X:\WINDOWS\Inf\netvwifimp.inf
     echo drvload X:\WINDOWS\Inf\netvwififlt.inf
     echo drvload X:\WINDOWS\Inf\netnwifi.inf
     echo netcfg -c s -i ms_nativewifip
     echo echo Importing detected CA certificate^(s^).
     echo for %%%%i in ^(*.cer^) do certutil -addstore root %%%%i
     echo echo.
     echo net start dot3svc
     echo net start wlansvc
     echo for %%%%i in ^("Wireless Network Connection*.xml"^) do netsh wlan add profile filename="%%%%i"
     echo netsh wlan show networks
     echo echo.
     echo echo use "netsh wlan" to manage the wifi connection like so:
     echo echo   netsh wlan connect name=YOURWLANHERE ssid=YOURWLANHERE
     echo echo   ipconfig /renew
     echo echo.
) > "%IP%\Windows\System32\wifi.cmd"

dism /Unmount-Wim /MountDir:"%IP%" /commit
imagex /export /boot /compress fast "%PE_TEMP%\WinPE-%PE_ARCH%\winpe.wim" 1 "%PE_TEMP%\WinPE-%PE_ARCH%\ISO\sources\boot.wim"
@echo off

::Mac OS BootCamp will look for autorun.inf in order to validate this disk as a Windows Installer CD
::adding this allows us to start unattended installs using WinPE
date /T > "%PE_TEMP%\WinPE-%PE_ARCH%\ISO\autorun.inf"

::x64 bootable ISO includes both BIOS & EFI boot loaders
if "%PE_ARCH%" == "x64" (
     set CD_CMD=oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,b"%PE_TEMP%\WinPE-%PE_ARCH%\etfsboot.com"#pEF,e,b"%PE_TEMP%\WinPE-%PE_ARCH%\efisys.bin" "%PE_TEMP%\WinPE-%PE_ARCH%\ISO" "%PE_TEMP%\WinPE-%PE_ARCH%\winpe_%PE_ARCH_LONG%.iso"
) else ( 
     set CD_CMD=oscdimg -n -b"%PE_TEMP%\WinPE-%PE_ARCH%\etfsboot.com" "%PE_TEMP%\WinPE-%PE_ARCH%\ISO" "%PE_TEMP%\WinPE-%PE_ARCH%\winpe_%PE_ARCH_LONG%.iso"
)
echo on
%CD_CMD%
@echo off

::rename the WIM file to avoid having multiple image files on the WDS server with the same filename
ren "%PE_TEMP%\WinPE-%PE_ARCH%\ISO\sources\boot.wim" boot_%PE_ARCH_LONG%.wim
del "%PE_TEMP%\WinPE-%PE_ARCH%\winpe.wim"

for %%i in (%WDS_SERVERS%) do (
     echo.
     echo Adding/updating boot image on WDS server: %%i
     :: try to add the image first, if that fails then replace existing
     wdsutil /Verbose /Progress /Add-Image /ImageFile:"%PE_TEMP%\WinPE-%PE_ARCH%\ISO\sources\boot_%PE_ARCH_LONG%.wim" /Server:%%i /ImageType:Boot /Name:"Microsoft Windows PE (%PE_ARCH%)" || wdsutil /Verbose /Progress /Replace-Image /Image:"Microsoft Windows PE (%PE_ARCH%)" /ImageType:Boot /Architecture:%PE_ARCH% /ReplacementImage /Name:"Microsoft Windows PE (%PE_ARCH%)" /ImageFile:"%PE_TEMP%\WinPE-%PE_ARCH%\ISO\sources\boot_%PE_ARCH_LONG%.wim" /Server:%%i
     echo.
)
::rename the WIM back again so bootable USB devices can be created
ren "%PE_TEMP%\WinPE-%PE_ARCH%\ISO\sources\boot_%PE_ARCH_LONG%.wim" boot.wim
echo *******************************************************************
echo WDS boot image(s) updated
echo.
echo A bootable ISO of this image has been created at:
echo   %PE_TEMP%\WinPE-%PE_ARCH%\winpe_%PE_ARCH_LONG%.iso
echo.
echo To create a bootable USB key, use diskpart.exe to create a FAT32 partition
echo and mark it active, then copy the contents of this folder to its root:
echo   %PE_TEMP%\WinPE-%PE_ARCH%\ISO
echo.
echo FAT32 is required for EFI support.
echo.
if "%3"=="nopause" goto :eof
pause
goto :eof

:REG_MULTI_SZ-add
::subroutine to append a value to a multiple string value Registry entry
setlocal ENABLEEXTENSIONS
set KEY=%1
set VALUE=%2
for /f "tokens=2*" %%a in ('reg query %KEY% /v %VALUE% /t REG_MULTI_SZ ^| FIND "REG_MULTI_SZ"') do set DATA=%%b
set DATA=%DATA%\0%3
reg add %KEY% /v %VALUE% /t REG_MULTI_SZ /d %DATA% /f
 
 

24 thoughts on “Unified Windows PE 3.1 builder script for WAIK, with wifi and EFI support

  1. Carsten Jønsson

    Awesome work!
    Have you tried this with SCCM 2007?
    I have a Config Mgr setup and I’m having trouble figuring out what folder to set as %source%.
    I got no :\unattended folder anywhere.
    And I can’t find any folders matching you list:
    %SOURCE%\scripts\WinPE
    %SOURCE%\drivers\WinPE-x86\CURRENT
    %SOURCE%\drivers\WinPE-x64\CURRENT
    %SOURCE%\tools\WinPE-x86
    %SOURCE%\tools\WinPE-x64
    %SOURCE%\tools\WinPE-x86\WLAN
    %SOURCE%\tools\WinPE-x64\WLAN

    Can you help?

    Carsten

    Reply
  2. Carsten Jønsson

    I got it figured.
    They are of course custom folders you need to create and put the highlighted files in.

    Thanks.

    Carsten

    Reply
  3. Pingback: Ghost Woes with Dell Latitude ST Tablet

  4. jake_friz

    I got an 802.1x wireless network to work from WinPE. The trick was to use certificate based computer authentication. Then, the computer certificate can be exported from a working Win7 PC, and imported into WinPE after it boots. Just be sure to include certutil.exe and it’s .mui file.

    Of course I don’t have a solution for user auth, or MSCHAP. But, wanted to share incase this helps anyone out there. If someone gets user auth and/or MSChAP going, please share :-).

    Reply
    1. patatoo

      hi jake, what’s kinds of certificate did you export? I exported the certificate which is used to auth a WPA2 wireless network from a Win7 PC(A machine in domain, and the certificate is got when connect to the wireless, no password is required). But it seems the certificate doesn’t work in the WinPE. Do you know what’s the problem of this?

      Reply
  5. patatoo

    Hi, I get an error when “ipconfig /renew”, and the wireless could not be connected. Could you help me.

    Below is what I got:
    ::netsh wlan connect name=A-MSFTWLAN
    Connection request was completed successfully.
    ::IPConfig /renew
    Windows IP Configuration
    No operation can be performed on Wireless Network Connection while it has its media disconnected.
    No operation can be performed on Local Area Connection while it has its media disconnected.
    An error occurred while releasing interface Loopback Pseudo-Interface 1 : The system cannot find the file specified.

    ::WIFI.cmd is done successfully.
    DrvLoad: Successfully loaded X:\WINDOWS\Inf\netvwifimp.inf.
    DrvLoad: Successfully loaded X:\WINDOWS\Inf\netvwififlt.inf.
    DrvLoad: Successfully loaded X:\WINDOWS\Inf\netnwifi.inf.
    Trying to install ms_nativewifip …
    …done.
    Importing detected CA certificate(s).
    root
    Signature matches Public Key
    Certificate “CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE” added to store.
    CertUtil: -addstore command completed successfully.
    The Wired AutoConfig service is starting.
    The Wired AutoConfig service was started successfully.
    The WLAN AutoConfig service is starting.
    The WLAN AutoConfig service was started successfully.
    Profile A-MSFTWLAN is added on interface Wireless Network Connection.
    Interface name : Wireless Network Connection
    There are 4 networks currently visible.
    SSID 1 : MSFTGUEST
    Network type : Infrastructure
    Authentication : Open
    Encryption : None
    SSID 2 :
    Network type : Infrastructure
    Authentication : Open
    Encryption : WEP
    SSID 3 : A-MSFTWLAN
    Network type : Infrastructure
    Authentication : WPA2-Enterprise
    Encryption : CCMP
    SSID 4 : S.I.T Coffee
    Network type : Adhoc
    Authentication : Open
    Encryption : None
    use “netsh wlan” to manage the wifi connection like so:
    netsh wlan connect name=A-MSFTWLAN ssid=412D4D534654574C414E
    ipconfig /renew

    Reply
    1. patters Post author

      Did you export the network profile from a working Windows 7 PC? It looks to me like you’re trying to specify the network name and password in that last bit, without exporting. You can’t configure a network without first doing that.

      The ‘name’ should be the name of the profile you exported from the working machine. The SSID is the network name (you seem to be specifying a passphrase there).

      I’ll amend the example in the post to make that a bit more clear.

      Reply
  6. drude

    Thanks to this post I have a PE build which will see the SSID’s. I however have the same problem as patatoo. I’m using AES and WPA-2 Enterprise. There is just no IP. Before I upgraded the wifi nic driver my error was unathenticated media. After the upgrade, I now get media disconnected. So, I am shaking hands with the AP, but no TCP/Ip will walk across the darn thing.

    Reply
  7. patters Post author

    Updated the script to allow Mac OS X Lion BootCamp to start unattended installs based on this Windows PE (to get past the check for a valid Windows DVD).

    Reply
  8. patters Post author

    I have updated the script so that the amd64 ISO image now has both BIOS and EFI support, as per:
    http://support.microsoft.com/kb/947024
    …and the USB key creation note now mentions using FAT32 to allow EFI booting.

    I couldn’t get VMware ESXi 5.0 U1’s EFI firmware PXE support working, despite following the directions here:
    http://support.microsoft.com/kb/2012858
    …so I started investigating using an ISO as a workaround.

    Strangely, I found that the EFI guest VM would refuse to boot from this ISO image when mounted from a datastore, but that it would work if mounted via vSphere Client on a PC. I have an open case with VMware on these EFI issues, but at least I’ve found one way of creating non-legacy Windows Server VMs. Finally, no more 1970s legacy BIOS!

    Reply
  9. Damon Palm

    I’m trying to get the wireless portion of this working with the new Windows ADK and PE 4.0. The wlansvc service shows up normally when I query it with sc.exe, but when I try to start it, it says “System error 6 has occurred. The handle is invalid.” I suspect something has changed in the way Windows version 6.2.x does wireless, but I don’t know services well enough to really figure it out. I have been able to verify all the registry keys are getting added correctly, and I do have the driver package added to the PE image for the wireless adapter I’m using. I’m getting all my files from a Windows 8 CP x86 machine, which should go with the x86 PE 4.0 image.

    Have you had any luck getting this to work in PE 4.0?

    Reply
    1. patters Post author

      I tend to only start using the new deployment tools when they’re properly released I’m afraid, so I haven’t dabbled with PE 4.0.

      Reply
      1. Damon Palm

        Thanks. I thought I had it figured out yesterday when I tried adding in the new Windows Connection Manager (wcmsvc) service, which wlansvc depends on in 8… it started fine, but wlan still had the same error. Looks like I’ll be sticking with PE 3.1 for now.

    2. Daniel

      HI Damon Palm,
      i also try to create Pe4.0 Wifi Boot Image. Did you you have newer information?

      Thanks
      Daniel

      Reply
  10. Pingback: Unified Windows PE 4.0 builder for Windows ADK « PC LOAD LETTER

  11. David

    Hello, I followed the same steps of your script and it does not work wifi on winpe, when I start the service wlansvc tells me:

    “Error 1068: The dependency or group failed to start the WLAN Auto Config serviceon the local computer.”

    I checked the services and the dependencies and are properly installed and working.

    I have windows 7 SP1 with aik + complement (WinPE 3.1), use the Spanish version.

    Reply
  12. Daniel

    Hi there,

    i`ve seen that other person also needs PE 4.0 with Wifi support. Had anybody next new information for this version? It would be very helpfully.

    Thanks
    Daniel

    Reply
  13. James

    First, I would like to say this is a great post with lots of useful information. I was hoping someone would follow up on whether this works on a WPA2-Enterprise network using EAP-MSCHAP v2 Authentication method?

    The issue is that it is becoming increasingly difficult to image tablets and other devices using traditional Ethernet as it is not always possible. With 802.11n and WiGig, there is enough throughput to do OSD over wireless.

    Reply
    1. patters Post author

      It’s the SyntaxHighlighter plugin that formats it like that. If you select the text and copy and paste it you will get the full lines. If you just want to take a look at one part you can scroll over to the right if you select some text and drag the selection to the right.

      Reply
  14. Bob Paw

    ISO boots in VirtualBox but not when extracted to USB with 7zip or copied to USB from ISO folder.

    Reply

Leave a comment