I've successfully used the various guides out there to build a WinPE 3.0 build with wireless support. In addition, I got it to the point where I could image a new laptop form start to finish completely over the wireless network with SCCM.
I'm trying to do the same thing with WinPE 4.0 x64, but the same hacks don't work. It appears that the wlansvc depends on the wcmsvc in order to launch in WinPE 4.0 (Windows 8). Here is what I've done so far.
I've done the following with WinPE 4.0 x64 boot.wim file mounted to c:\mount
WinPE 4.0 x64 Packages
----------------------------------
Added dot3svc package. This is needed as the dot3svc service needs to be running in order to start wlansvc and wcmsvc.
dism /Image:C:\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\WINPE-DOT3SVC.CAB"
dism /Image:C:\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\en-us\WINPE-DOT3SVC_EN-US.CAB"
Registry Edits
-------------------
reg load HKLM\PE-BUILD-SYSTEM "C:\mount\Windows\System32\config\SYSTEM"
reg load HKLM\PE-BUILD-SOFTWARE "C:\mount\Windows\System32\config\SOFTWARE"
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v DisplayName /t REG_SZ /d "@%%SystemRoot%%\System32\Wcmsvc.dll,-4097" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v ErrorControl /t REG_DWORD /d 1 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v Group /t REG_SZ /d TDI /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v ImagePath /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\svchost.exe -k LocalServiceNetworkRestricted" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v Start /t REG_DWORD /d 2 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v Type /t REG_DWORD /d 32 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v Description /t REG_SZ /d "@%%SystemRoot%%\System32\Wcmsvc.dll,-4098" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v DependOnService /t REG_MULTI_SZ /d "RpcSs" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v ObjectName /t REG_SZ /d "NT Authority\LocalService" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v ServiceSidType /t REG_DWORD /d 1 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v RequiredPrivileges /t REG_MULTI_SZ /d "SeChangeNotifyPrivilege\0SeImpersonatePrivilege" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc /v FailureActions /t REG_BINARY /d 805101000000000000000000030000001400000001000000C0D4010001000000E09304000000000000000000 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc\Parameters /v ServiceDll /t REG_EXPAND_SZ /d "%%SystemRoot%%\System32\Wcmsvc.dll" /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc\Parameters /v ServiceDllUnloadOnStop /t REG_DWORD /d 1 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\services\Wcmsvc\Parameters /v ServiceMain /t REG_SZ /d WcmSvcMain /f
FIles Copied from Windows 8 x64 to PE 4.0 x64 wim
-----------------------------------------------------------------------
*NOTE - for the catroot files...not sure if ALL of these are needed....but some of the files need them due to Win 8 signing all the files*
From Under system32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
Microsoft-Windows-Client-Drivers-Package-base~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-base~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-drivers~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-drivers~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-net~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-net~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-windows~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package-windows~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Drivers-Package~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-base~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-base~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-drivers~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-drivers~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-inetcore~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-inetcore~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-inetsrv~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-net~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-net~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-windows~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package-windows~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package~31bf3856ad364e35~amd64~en-US~6.2.9200.16384.cat
Microsoft-Windows-Client-Features-Package~31bf3856ad364e35~amd64~~6.2.9200.16384.cat
Under system32\drivers
wcmsvc.dll
Under system32\drivers\en-US
wcmsvc.dll.mui
Up to this point, the services wont start.....here is where I start breaking things.....and need help.
I then made these registry changes:
reg add "HKLM\PE-BUILD-SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost" /v LocalSystemNetworkRestricted /t REG_MULTI_SZ /d Netman\0hidserv\0svsvc\0dot3svc\0wlansvc /f
reg add "HKLM\PE-BUILD-SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost" /v LocalServiceNetworkRestricted /t REG_MULTI_SZ /d DHCP\0eventlog\0LmHosts\0wcmsvc /f
I tried mirroring the LocalServiceNetworkRestricted off of how LocalSystemNetworkRestricted was done for the WinPE 3.0. Please note that I did update LocalSystemNetworkRestricted to reflect the service names for WinPE 4.0 / Win 8.
I kept these changes from the WinPE 3.0 wifi configuration, but didn't know if something similar needed to be made for the wcmsvc service. One thing to note was that registry permissions prevented me from making these changes at first...I had to take ownership and modify the permissions and then I was able to add them. This could be were things got worse. At some point my WinPE 4.0 did recognize ANY network adapters (wired or wireless)
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC /v NextInstance /t REG_DWORD /d 1 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v Service /t REG_SZ /d Wlansvc /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v Legacy /t REG_DWORD /d 1 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v ConfigFlags /t REG_DWORD /d 0 /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v Class /t REG_SZ /d LegacyDriver /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v ClassGUID /t REG_SZ /d {8ECC055D-047F-11D1-A537-0000F8753ED1} /f
reg add HKLM\PE-BUILD-SYSTEM\ControlSet001\Enum\Root\LEGACY_WLANSVC\0000 /v DeviceDesc /t REG_SZ /d "@%%SystemRoot%%\System32\wlansvc.dll,-257" /f
So, after working with it a while I was able to get the dot3svc, wcmsvc and wlansvc to all start, but it did not appear that the wireless device was being seen. In addition, at least once when trying to start wlansvc it would throw an error. I didn't copy it down, but I can provide some more info when I'm back at this tomorrow.
So, that is where things are at. If anyone has cracked this yet I'd be interested to know what needs to be done! Thanks!