@echo off
title Удаление PureHelper
setlocal

REM Снимает регистрацию браузера в PureHelper Chrome Enterprise Core.
REM Enrollment-токен, DM-токен и кеш облачной политики. Расширение Chrome
REM удаляет сам, когда регистрация исчезает. Нужны права администратора.
REM /silent - режим для штатного деинсталлятора: без вопросов и без pause.

set "SILENT="
if /I "%~1"=="/silent" set "SILENT=1"
set "BRAND=PureHelper"
set "EXT_ID=ijmdebnjaholioibkepmpihdchdbolkk"
set "POL_KEY=HKLM\SOFTWARE\Policies\Google\Chrome"

net session >nul 2>&1
if %errorlevel% equ 0 goto elevated
if defined SILENT exit /b 1
echo Запрашиваю права администратора...
powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b

:elevated
if not defined SILENT echo Удаление PureHelper
if not defined SILENT echo.

REM Chrome держит DM-токен в памяти и вернёт удалённое, пока живёт.
tasklist /FI "IMAGENAME eq chrome.exe" 2>nul | find /I "chrome.exe" >nul
if errorlevel 1 goto removetoken
if not defined SILENT echo Закрываю Chrome, иначе он восстановит регистрацию...
taskkill /IM chrome.exe >nul 2>&1
timeout /t 6 /nobreak >nul
tasklist /FI "IMAGENAME eq chrome.exe" 2>nul | find /I "chrome.exe" >nul
if errorlevel 1 goto removetoken
if not defined SILENT echo [!] Chrome не закрылся. Закройте вручную и запустите снова.
if not defined SILENT echo     Проверьте трей - при фоновых приложениях он остаётся жить.
if not defined SILENT pause
exit /b 2

:removetoken
reg delete "%POL_KEY%" /v CloudManagementEnrollmentToken /f >nul 2>&1
reg delete "HKLM\SOFTWARE\WOW6432Node\Policies\Google\Chrome" /v CloudManagementEnrollmentToken /f >nul 2>&1
reg delete "HKCU\Software\Policies\Google\Chrome" /v CloudManagementEnrollmentToken /f >nul 2>&1
reg delete "HKCU\Software\Policies\Google\Chrome" /v ExtensionSettings /f >nul 2>&1
if not defined SILENT echo [+] Токен зачисления снят

REM DM-токен лежит в двух ветках, вторая - в 32-битном представлении.
reg delete "HKLM\SOFTWARE\Google\Chrome\Enrollment" /v dmtoken /f >nul 2>&1
reg delete "HKLM\SOFTWARE\WOW6432Node\Google\Chrome\Enrollment" /v dmtoken /f >nul 2>&1
reg delete "HKLM\SOFTWARE\Google\Enrollment" /v dmtoken /f >nul 2>&1
reg delete "HKLM\SOFTWARE\WOW6432Node\Google\Enrollment" /v dmtoken /f >nul 2>&1
if not defined SILENT echo [+] DM-токен удалён

REM Кеш в профиле каждого пользователя машины.
for /d %%U in ("C:\Users\*") do call :clean_user "%%~U"

if defined SILENT goto done
echo.
echo Проверка:
reg query HKLM /f dmtoken /s /v 2>nul | find /I "dmtoken" >nul && echo [!] dmtoken ещё где-то есть || echo [+] dmtoken отсутствует
reg query "%POL_KEY%" /v CloudManagementEnrollmentToken >nul 2>&1 && echo [!] токен зачисления на месте || echo [+] токен зачисления отсутствует
echo.
echo Откройте Chrome и проверьте chrome://management.
echo Браузером не должна управлять организация. Расширение Chrome удалит сам.
echo.
pause

:done
exit /b 0

:clean_user
for /d %%G in ("%~1\AppData\Local\Google\*") do if exist "%%~G\User Data\Policy\" call :clean_policy "%%~G\User Data\Policy"
exit /b

:clean_policy
if not exist "%~1\Machine Level User Cloud Policy" goto do_remove
findstr /m /c:"%EXT_ID%" "%~1\Machine Level User Cloud Policy" >nul 2>&1
if errorlevel 1 goto foreign
:do_remove
rmdir /s /q "%~1"
if not defined SILENT echo [+] Кеш политики удалён: %~1
exit /b
:foreign
if not defined SILENT echo [!] Другая организация, пропущено: %~1
exit /b
