@echo off
chcp 65001 >nul
title Настройка однократного меню F7
color 0A

:: Проверка прав администратора
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Перезапуск с правами администратора
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)
:: Проверка аргумента командной строки
if /i "%1"=="reset" goto RESET
if /i "%1"=="r" goto RESET

:MENU
cls
echo ================================================
echo   НАСТРОЙКА ОДНОКРАТНОГО МЕНЮ F7 ПРИ ЗАГРУЗКЕ
echo ================================================
echo.
echo Выберите действие:
echo   [1] Включить однократное меню F7 при следующей загрузке
echo   [2] Сбросить настройки (отключить меню)
echo   [3] Выход
echo.
set /p choice="Ваш выбор (1/2/3): "

if "%choice%"=="1" goto ENABLE
if "%choice%"=="2" goto RESET
if "%choice%"=="3" exit
goto MENU

:ENABLE
cls
echo ================================================
echo   ВКЛЮЧЕНИЕ ОДНОКРАТНОГО МЕНЮ F7
echo ================================================
echo.

:: Шаг 1: Устанавливаем загрузочную запись
echo [1/2] Настройка загрузочной записи...
bcdedit /bootsequence "{current}" >nul 2>&1
if %errorlevel% equ 0 (
    echo   [+] Загрузочная запись установлена: {current}
) else (
    echo   [!] Ошибка при установке загрузочной записи
    pause
    exit /b 1
)

:: Шаг 2: Включаем однократное меню дополнительных параметров
echo [2/2] Включение однократного меню F7...
bcdedit /set "{current}" onetimeadvancedoptions on >nul 2>&1
if %errorlevel% equ 0 (
    echo   [+] Меню F7 будет показано при следующей загрузке
) else (
    echo   [!] Ошибка при включении меню
    pause
    exit /b 1
)

echo.
echo ================================================
echo [✓] Настройка завершена успешно!
echo ================================================
echo.
echo При следующей перезагрузке появится меню дополнительных параметров.
echo Там нужно выбрать вариант F7 (Отключение проверки подписи драйверов).
echo.
goto REBOOT_PROMPT

:RESET
cls
echo ================================================
echo   СБРОС НАСТРОЕК ЗАГРУЗКИ
echo ================================================
echo.

:: Отключаем однократное меню
echo [1/2] Отключение однократного меню F7...
bcdedit /deletevalue "{current}" onetimeadvancedoptions >nul 2>&1
if %errorlevel% equ 0 (
    echo   [+] Меню F7 отключено
) else (
    echo   [!] Ошибка при отключении меню
)

:: Сбрасываем загрузочную последовательность (опционально)
echo [2/2] Сброс загрузочной последовательности...
bcdedit /bootsequence /cleanup >nul 2>&1
if %errorlevel% equ 0 (
    echo   [+] Загрузочная последовательность сброшена
) else (
    echo   [!] Ошибка при сбросе последовательности
)

echo.
echo ================================================
echo [✓] Настройки сброшены!
echo ================================================
echo.
echo Меню F7 больше не будет появляться при загрузке.
echo.
goto REBOOT_PROMPT

:REBOOT_PROMPT
set /p reboot="Перезагрузить компьютер сейчас? (y/n): "

if /i "%reboot%"=="y" (
    echo.
    echo Перезагрузка через 3 секунды...
    timeout /t 3 /nobreak >nul
    shutdown /r /t 0
) else (
    echo.
    echo Перезагрузка отменена. Изменения вступят при следующей ручной перезагрузке.
    pause
    exit /b 0
)