@echo off
setlocal EnableDelayedExpansion

rem ============================================================
rem  Extension Registry Checker
rem  HKCU / HKLM both checked. Read-only (no writes).
rem
rem  Expected deployment layout (per setup guide 2.1):
rem    ExtensionSettings .... in HKLM
rem    3rdparty/policy ...... in HKCU
rem  For standalone/one-user PCs both may be in HKLM.
rem  Missing entries on the "other" side are normal and expected.
rem ============================================================

set "ExtensionIdChrome=bdeanmdeckegmfjpbnngomallcedjold"
set "ExtensionIdEdge=flggmhlpipcopffjfkpgkoljghfkmfcg"

set "PASS=[OK]"
set "FAIL=[--]"
set "TOTAL_FOUND=0"
set "TOTAL_MISSING=0"
set "USEREMAIL_STATUS=not checked"
set "USEREMAIL_VALUE="

rem Check the current user-scoped environment variable before registry checks.
if defined USEREMAIL (
    set "USEREMAIL_STATUS=defined"
    set "USEREMAIL_VALUE=%USEREMAIL%"
) else (
    set "USEREMAIL_STATUS=not defined"
)

echo ================================================================
echo  Extension Registry Checker  (read-only)
echo  Date: %DATE% %TIME%
echo ================================================================
echo.
echo  [User Environment]
echo   USEREMAIL: !USEREMAIL_STATUS!
if defined USEREMAIL (
    echo   Value   : !USEREMAIL_VALUE!
) else (
    echo   Value   : NOT SET
)
echo.

for %%R in (HKEY_CURRENT_USER HKEY_LOCAL_MACHINE) do (
    if "%%R"=="HKEY_CURRENT_USER"  set "SHORT=HKCU"
    if "%%R"=="HKEY_LOCAL_MACHINE" set "SHORT=HKLM"

    echo ----------------------------------------
    echo  !SHORT!  ^(%%R^)
    echo ----------------------------------------
    echo.

    rem -- Chrome ExtensionSettings --
    set "KEY=%%R\Software\Policies\Google\Chrome\ExtensionSettings\%ExtensionIdChrome%"
    echo  [Chrome ExtensionSettings]
    echo   Key: !KEY!
    reg query "!KEY!" /v "installation_mode" /reg:64 >nul 2>&1
    if !errorlevel! equ 0 (
        for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "installation_mode" /reg:64 2^>nul ^| findstr /i "installation_mode"') do echo   %PASS% installation_mode = %%b
        set /a TOTAL_FOUND+=1
    ) else (
        echo   %FAIL% installation_mode  NOT SET
        set /a TOTAL_MISSING+=1
    )
    reg query "!KEY!" /v "update_url" /reg:64 >nul 2>&1
    if !errorlevel! equ 0 (
        for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "update_url" /reg:64 2^>nul ^| findstr /i "update_url"') do echo   %PASS% update_url        = %%b
        set /a TOTAL_FOUND+=1
    ) else (
        echo   %FAIL% update_url         NOT SET
        set /a TOTAL_MISSING+=1
    )
    echo.

    rem -- Chrome 3rdparty Policy --
    set "KEY=%%R\Software\Policies\Google\Chrome\3rdparty\extensions\%ExtensionIdChrome%\policy"
    echo  [Chrome 3rdparty Policy]
    echo   Key: !KEY!
    for %%V in (ApiKey CreatedDate OrganizationID UserEmail UserPc) do (
        reg query "!KEY!" /v "%%V" /reg:64 >nul 2>&1
        if !errorlevel! equ 0 (
            for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "%%V" /reg:64 2^>nul ^| findstr /i "%%V"') do (
                set "REGVAL=%%b"
                if "%%V"=="ApiKey" (
                    echo   %PASS% %%V = !REGVAL:~0,4!...!REGVAL:~-4!
                ) else (
                    echo   %PASS% %%V = %%b
                )
            )
            set /a TOTAL_FOUND+=1
        ) else (
            echo   %FAIL% %%V  NOT SET
            set /a TOTAL_MISSING+=1
        )
    )
    echo.

    rem -- Edge ExtensionSettings --
    set "KEY=%%R\Software\Policies\Microsoft\Edge\ExtensionSettings\%ExtensionIdEdge%"
    echo  [Edge ExtensionSettings]
    echo   Key: !KEY!
    reg query "!KEY!" /v "installation_mode" /reg:64 >nul 2>&1
    if !errorlevel! equ 0 (
        for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "installation_mode" /reg:64 2^>nul ^| findstr /i "installation_mode"') do echo   %PASS% installation_mode = %%b
        set /a TOTAL_FOUND+=1
    ) else (
        echo   %FAIL% installation_mode  NOT SET
        set /a TOTAL_MISSING+=1
    )
    reg query "!KEY!" /v "update_url" /reg:64 >nul 2>&1
    if !errorlevel! equ 0 (
        for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "update_url" /reg:64 2^>nul ^| findstr /i "update_url"') do echo   %PASS% update_url        = %%b
        set /a TOTAL_FOUND+=1
    ) else (
        echo   %FAIL% update_url         NOT SET
        set /a TOTAL_MISSING+=1
    )
    echo.

    rem -- Edge 3rdparty Policy --
    set "KEY=%%R\Software\Policies\Microsoft\Edge\3rdparty\extensions\%ExtensionIdEdge%\policy"
    echo  [Edge 3rdparty Policy]
    echo   Key: !KEY!
    for %%V in (ApiKey CreatedDate OrganizationID UserEmail UserPc) do (
        reg query "!KEY!" /v "%%V" /reg:64 >nul 2>&1
        if !errorlevel! equ 0 (
            for /f "tokens=2*" %%a in ('reg query "!KEY!" /v "%%V" /reg:64 2^>nul ^| findstr /i "%%V"') do (
                set "REGVAL=%%b"
                if "%%V"=="ApiKey" (
                    echo   %PASS% %%V = !REGVAL:~0,4!...!REGVAL:~-4!
                ) else (
                    echo   %PASS% %%V = %%b
                )
            )
            set /a TOTAL_FOUND+=1
        ) else (
            echo   %FAIL% %%V  NOT SET
            set /a TOTAL_MISSING+=1
        )
    )
    echo.
)

echo ================================================================
echo  Summary:  %TOTAL_FOUND% found  /  %TOTAL_MISSING% missing
echo ================================================================
if %TOTAL_MISSING% equ 0 (
    echo  All registry values are configured.
) else (
    echo  Some values are missing. Run the installer to configure them.
)
if /i not "!USEREMAIL_STATUS!"=="defined" (
    echo  USEREMAIL is not defined in the current user environment.
)
echo.
echo Press any key to exit...
pause

endlocal
exit /b
