For those who are still fixing this problem I created a BartPE plugin to fix it.
No additional files are needed everything is included already in the PE Build or is in the plugin.
To launch select Programs -> Repair Userinit -> Repair User init
for those who would like to do it on their own
Code:
@echo off
if exist c:\windows\system32\config\software (
reg load HKLM\JUNK c:\windows\system32\config\software
set UserInitPath="C:\windows\system32\userinit.exe,"
) ELSE if exist c:\winnt\system32\config\software (
reg load HKLM\JUNK c:\winnt\system32\config\software
set UserInitPath="C:\winnt\system32\userinit.exe,"
) else goto END
for /f "skip=4 delims=" %%i in ('reg query "HKLM\JUNK\Microsoft\Windows NT\currentversion\Winlogon" /v userinit') do (
for /f "usebackq tokens=1,2,3" %%j in ('%%i') do (
if "%%l"=="" (
reg add "HKLM\JUNK\Microsoft\Windows NT\currentversion\Winlogon" /v userinit /t REG_SZ /d %UserInitPath% /f
)
)
)
:END
pause