Иногда вам нужно создать командный файл, который включает команды, требующие повышенных прав. Из-за функции UAC, включенной в Windows с Windows Vista, при запуске командного файла он открывается без необходимых прав доступа, если вы не щелкните его правой кнопкой мыши и не выберите «Запуск от имени администратора» в контекстном меню. Вот как вы можете создать командный файл, который будет автоматически повышаться.
Реклама
Прежде чем продолжить, посмотрите как добавить командный файл (* .bat) в новое меню проводника . Поместите следующий контент в начало вашего командного файла:
выключить iphone не беспокоить
::::::::::::::::::::::::::::::::::::::::::: :: Автоматическая проверка и получение права администратора V2 :::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Запуск оболочки администратора ECHO =============== ==============: init setlocal DisableDelayedExpansion set 'batchPath =% ~ 0' для %% k в (% 0) установить batchName = %% ~ nk set 'vbsGetPrivileges =% temp% OEgetPriv_% batchName% .vbs 'setlocal EnableDelayedExpansion: checkPrivileges NET FILE 1> NUL 2> NUL if'% errorlevel% '==' 0 '(goto gotPrivileges) else (goto getPrivileges): getPrivileges if'% 1 '==' ELEV '(echo ELEV & shift / 1 & goto gotPrivileges) ECHO. ECHO ************************************* ECHO Вызов UAC для повышения привилегий ECHO **** ********************************* ECHO Set UAC = CreateObject ^ ('Shell.Application' ^)> ' % vbsGetPrivileges% 'ECHO args =' ELEV '>>'% vbsGetPrivileges% 'ECHO For Each strArg in WScript.Arguments >>'% 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 если '% 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:
Кредиты для этого кода переходят к Мэтт .