Windows Tips & News

Как автоматически повысить пакетный файл, чтобы запустить его от имени администратора

4 ответов

Иногда вам нужно создать командный файл, который включает команды, требующие повышенных прав. Благодаря функции UAC, включенной в Windows, начиная с Windows Vista, при запуске командного файла он открывается без необходимые права доступа, если вы не щелкните его правой кнопкой мыши и не выберете "Запуск от имени администратора" в контексте меню. Вот как вы можете создать командный файл, который будет автоматически повышаться.

Прежде чем продолжить, см. как добавить командный файл (* .bat) в новое меню проводника. Поместите следующий контент в начало вашего командного файла:

:: Автоматическая проверка и получение прав администратора V2. @ эхо выкл. CLS. ЭХО. ECHO ECHO Запуск оболочки администратора. ЭХО: инициализация. setlocal DisableDelayedExpansion. установить "batchPath =% ~ 0" для %% k в (% 0) установите batchName = %% ~ nk. установите "vbsGetPrivileges =% temp% \ OEgetPriv_% batchName% .vbs" setlocal EnableDelayedExpansion: checkPrivileges. ЧИСТЫЙ ФАЙЛ 1> NUL 2> NUL. if '% errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges): getPrivileges. если '% 1' == 'ELEV' (echo ELEV & shift / 1 & goto gotPrivileges) ЭХО. ЭХО ************************************** ECHO Вызов UAC для повышения привилегий. ECHO ************************************* ECHO Set UAC = CreateObject ^ ("Shell. Приложение "^)>"% vbsGetPrivileges% " ECHO args = "ELEV" >> "% vbsGetPrivileges%" ECHO для каждой strArg в WScript. Аргументы >> "% vbsGetPrivileges%" ECHO args = args ^ & strArg ^ & "" >> "% vbsGetPrivileges%" ECHO Далее >> "% vbsGetPrivileges%" ECHO UAC.ShellExecute "! BatchPath!", Args, "", "runas", 1 >> "% vbsGetPrivileges%" "% SystemRoot% \ System32 \ WScript.exe" "% vbsGetPrivileges%"% * exit / B: gotPrivileges. setlocal и pushd. cd / d% ~ dp0. if '% 1' == 'ELEV' (del "% vbsGetPrivileges%" 1> nul 2> nul & shift / 1):: START. REM Запустить оболочку от имени администратора (пример) - введите сюда код, какой хотите. ECHO% batchName% Аргументы:% 1% 2% 3% 4% 5% 6% 7% 8% 9.

Поместите свои собственные пакетные команды, которые требуют повышения ниже последней строки.

Предоставленный код создаст специальный файл VBS, который перезапустит его, если он не запущен от имени администратора. Итак, если вы запустите его с ограниченными разрешениями, вы получите приглашение UAC с просьбой повысить привилегии, прежде чем он выполнит свои команды!

Вот как это выглядит в Windows 10:

Кредиты для этого кода переходят на Мэтт.

Отключить фоновые приложения в Windows 10 версии 1803

Отключить фоновые приложения в Windows 10 версии 1803

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительн...

Читать далее

Игры для Windows 7 для Windows 10 Anniversary Update и более поздних версий

Игры для Windows 7 для Windows 10 Anniversary Update и более поздних версий

Если вы являетесь участником программы предварительной оценки Windows, возможно, вы уже знаете, ч...

Читать далее

Архивы юбилейных обновлений игр для Windows 7

Этот веб-сайт использует файлы cookie, чтобы улучшить вашу работу во время навигации по веб-сайту...

Читать далее