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

How Automatically Elevate Batch File Run It

Чтобы поднять пакетные файлы вручную, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора». Вот способ автоматического повышения уровня командного файла, который требует повышенных прав для правильной работы. Это эквивалентно выбору «Запуск от имени администратора» путем щелчка правой кнопкой мыши командного файла. В любом случае приглашение UAC все равно будет отображаться.



Автоматическое повышение уровня пакетного файла

 ::::::::::::::::::::::::::::::::::::::::::: :: Автоматическая проверка и получение права администратора 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 cmd / k 

Добавьте свои инструкции в этот .bat-файл под меткой «НАЧАТЬ».

Этот пакетный файл создает файл Vbscript, который затем повторно запускает пакетный файл от имени администратора (если он еще не запущен с правами администратора) с использованием параметра runas, который необходим для его повышения. Метод Vbscript и «runas» был описан в моем старом посте. Vbscripts и повышение прав UAC в Windows Vista и более поздних версиях .

Кредиты Мэтту в Stack Overflow за этот метод. windows - Как я могу автоматически повысить свой пакетный файл, чтобы он запрашивал у администратора UAC права, если это необходимо?

Запуск пакетных файлов с повышенными правами по умолчанию

Помимо описанного выше метода автоматического повышения прав, со стороны клиента вы можете настроить реестр так, чтобы командные файлы всегда запускались с повышенными правами, показывая подсказку UAC. Это делается путем изменения действия двойного щелчка по умолчанию с «открыть» на «runas» в реестре. Используйте следующие шаги:

Запустите Regedit.exe и перейдите в следующую папку:

HKEY_CLASSES_ROOT  batfile  оболочка

Дважды щелкните (по умолчанию) и установите данные значения как руны

bat файл по умолчанию с повышенными правами

Закройте редактор реестра.

После этого изменения командные файлы всегда будут запускаться с повышенными правами при двойном щелчке. Запуск от имени администратора будет вариантом по умолчанию, отображаемым при щелчке правой кнопкой мыши по файлу .bat.

bat файл по умолчанию с повышенными правами


Одна небольшая просьба: если вам понравился этот пост, поделитесь им?

Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:
  • Приколи это!
  • Поделитесь этим в своем любимом блоге + Facebook, Reddit
  • Напишите об этом в Твиттере!
Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)