A client was having an issue logging into their computer.  First was a blue screen with the login failed because the unique identifier is not supported.  After fixing that issue, We faced two errors today with our roaming profile.  


Error 1:

First logon fails with "The universal unique identifier (UUID) type is not supported


Error 2:

Here is the winlogin notification about the gpclient in event viewer we received after taking 10 minutes to login.  


The first part was solved by taking control of the gpsvc service then applying the command from here:

cmd /c reg add "HKLM\SYSTEM\CurrentControlSet\Services\gpsvc" /v Type /t REG_DWORD /d 0x10 /f 


after we ran this command in an elevated command prompt, the error for the UUID went away, but it still took ten minutes to log in.  We did a little more research and found a beautiful script below.  We copied it into a winlogin.bat file, saved it on the C Drive.  After we saved it, we opened an elevated command prompt and ran navigated to the script to run it.  I found just double clicking the script or opening it did not work properly.  


@Echo off
If EXIST "c:\Wbem.txt" GOTO END
:BEGIN
 Echo.Checking following services... 
Echo IPHelper (iphlpsvc) 
Echo SMS Agent Host (CcmExec) 
Echo Security Centre (wscsvc)  
Echo Windows Management Instrumentation (winmgmt) 
Echo.  

Set Service1="ccmexec"
Set Service2="iphlpsvc"
Set Service3="wscsvc"
Set Service4="winmgmt"

:CHECK
for /F "tokens=3 delims=: " %%H in ('sc query %Service1% ^| findstr "STATE"') do ( 
Set Service1State=%%H 
if /I "%%H" NEQ "STOPPED" (
echo.%Service1% still STOP_PENDING. Press Any key to check again otherwise Ctrl C out of the script
net stop %Service1% timeout 10 cls GOTO Check ) ) for /F "tokens=3 delims=: " %%H in ('sc query %Service2%  ^| findstr "STATE"') do (   Set Service2State=%%H if /I "%%H" NEQ "STOPPED" (    echo.%Service2% still STOP_PENDING. Press Any key to check again otherwise Ctrl C out of the script net stop %Service2% timeout 10 cls GOTO Check ) ) for /F "tokens=3 delims=: " %%H in ('sc query %Service3% ^| findstr "        STATE"') do ( Set Service3State=%%H if /I "%%H" NEQ "STOPPED" (    echo.%Service3% still STOP_PENDING. Press Any key to check again otherwise Ctrl C out of the script    net stop %Service3% timeout 10 cls GOTO Check ) ) for /F "tokens=3 delims=: " %%H in ('sc query %Service4% ^| findstr "        STATE"') do ( Set Service4State=%%H if /I "%%H" NEQ "STOPPED" (    echo.%Service4% still STOP_PENDING. Press Any key to check again otherwise Ctrl C out of the script    net stop %Service4% timeout 10 cls GOTO Check ) )  

:STATUS CLS Echo.%Service1% is %Service1State% Echo.%Service2% is %Service2State% Echo.%Service3% is %Service3State% Echo.%Service4% is %Service4State% echo. echo.All Services Stopped... Please Wait... Repairing WBEM Repository del C:\Windows\System32\wbem\Repository\*.* /q rd C:\Windows\System32\wbem\Repository* /q timeout 5 cls echo.Fix complete. Your computer will Restart in 60 seconds. shutdown -r -t 60 echo.WBEM Script Control > c:\WBEM.txt timeout 60  :END

After running this script, the boot time went down to 30 seconds instead of 5-10 minutes.  It seems when this problem happens you have to run this manually.  I'm sure you can set this up in a shutdown sequence.  


Here are two resources I used:

https://support.microsoft.com/en-us/help/2976660/first-logon-fails-with-the-universal-unique-identifier-uuid-type-is-no

https://community.spiceworks.com/topic/324801-winlogon-notification-subscriber-gpclient-error-taking-605-seconds-to-boot