@echo off
chcp 65001 >nul
title Установка техподдержки Энергия...

REM === ЗАПРОС ПРАВ АДМИНИСТРАТОРА ===
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo Запрашиваем права Администратора...
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
)

echo [1/5] Скачивание RustDesk...
set "url_x64=https://desk.energy56.ru/rustdesk-1.4.6-x86_64.exe"
set "url_x86=https://desk.energy56.ru/rustdesk-1.4.6-x86-sciter.exe"
set "temp_exe=%TEMP%\rustdesk_setup.exe"

if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
    curl -s -L -o "%temp_exe%" "%url_x64%"
) else (
    curl -s -L -o "%temp_exe%" "%url_x86%"
)

echo [2/5] Установка...
"%temp_exe%" --silent-install
timeout /t 10 >nul

echo [3/5] Настройка конфигурации...
taskkill /F /IM rustdesk.exe >nul 2>&1
net stop RustDesk >nul 2>&1
timeout /t 2 >nul

set "EXE_PATH=C:\Program Files\RustDesk\rustdesk.exe"
if exist "C:\Program Files (x86)\RustDesk\rustdesk.exe" set "EXE_PATH=C:\Program Files (x86)\RustDesk\rustdesk.exe"

REM Применяем конфигурацию
"%EXE_PATH%" --config "=0nI9gjZ59GOCFHZpRUcZtibJtET0IFellkYWRUQKBlRNZXRvdUSOhFSJVTOyImI6ISeltmIsISdy5iN1k3ZyVmbl5yazVGZv8iOzBHd0hmI6ISawFmIsISdy5iN1k3ZyVmbl5yazVGZiojI5FGblJnIsISdy5iN1k3ZyVmbl5yazVGZiojI0N3boJye"
timeout /t 3 >nul
"%EXE_PATH%" --password "Energy2026"
timeout /t 3 >nul

echo [4/5] Принудительная синхронизация настроек...
REM Находим, куда RustDesk записал конфиг (текущий профиль админа)
set "SOURCE_CONFIG=%APPDATA%\RustDesk\config"

REM 1. Копируем в LocalService (стандарт)
mkdir "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config" 2>nul
copy /Y "%SOURCE_CONFIG%\*.*" "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\" >nul

REM 2. Копируем в SystemProfile (Критично для Win 10!)
mkdir "C:\Windows\System32\config\systemprofile\AppData\Roaming\RustDesk\config" 2>nul
copy /Y "%SOURCE_CONFIG%\*.*" "C:\Windows\System32\config\systemprofile\AppData\Roaming\RustDesk\config\" >nul

REM 3. Копируем всем пользователям
for /d %%U in ("C:\Users\*") do (
    if exist "%%U\AppData\Roaming" (
        mkdir "%%U\AppData\Roaming\RustDesk\config" 2>nul
        copy /Y "%SOURCE_CONFIG%\*.*" "%%U\AppData\Roaming\RustDesk\config\" >nul
    )
)

net start RustDesk >nul 2>&1
start "" "%EXE_PATH%"
timeout /t 5 >nul

echo [5/5] Регистрация и завершение...
REM Используем usebackq для стабильного получения ID на Win 10
for /f "usebackq delims=" %%i in (`"%EXE_PATH%" --get-id`) do set RUSTDESK_ID=%%i

set "VPS_URL=http://193.39.208.118:56056/telegram_proxy"
set "CHAT_ID=238501210"
set "MSG=✅ Установлен RustDesk! ПК: %COMPUTERNAME%. ID: %RUSTDESK_ID%"

REM Отправка с таймаутом, чтобы не зависнуть
curl --connect-timeout 10 -s -X POST "%VPS_URL%" -d chat_id=%CHAT_ID% -d rustdesk_id="%RUSTDESK_ID%" -d pc_name="%COMPUTERNAME%" -d text="%MSG%" >nul

del "%temp_exe%" >nul 2>&1
exit