Windows Tips & News

Як автоматично підвищити пакетний файл, щоб запустити його від імені адміністратора

click fraud protection
РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи

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

Реклама


Перш ніж продовжити, див як додати пакетний файл (*.bat) до нового меню Провідника файлів. Розмістіть такий вміст на початку свого пакетного файлу:
:: Автоматично перевіряти та отримати права адміністратора V2. @echo off. CLS. ECHO. ECHO ECHO Запущена оболонка адміністратора. ECHO :init. setlocal DisableDelayedExpansion. встановити "batchPath=%~0" для %%k у (%0) встановіть batchName=%%~nk. встановити "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges. NET FILE 1>NUL 2>NUL. if '%errorlevel%' == '0' (перейти до gotPrivileges) інакше (перейти до getPrivileges) :getPrivileges. якщо '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ***************************************** ECHO, що викликає UAC для підвищення привілеїв. ECHO ************************************** ECHO Встановити 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. якщо '%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

Запит UAC на пакетний файл Windows 10

Windows 10 автоматично піднімає пакетний файлКредити для цього коду переходять до Мет.

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи
Частка ринку Windows 10 20H2 щойно перевищила 40%.

Частка ринку Windows 10 20H2 щойно перевищила 40%.

Наприкінці кожного місяця Adduplex публікує результати свого щомісячного опитування, показуючи ос...

Читати далі

Adduplex: частка ринку Windows 10 20H2 досягає 20%.

Adduplex: частка ринку Windows 10 20H2 досягає 20%.

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність систе...

Читати далі

Microsoft нарешті видаляє папку 3D Objects з File Explorer

Microsoft нарешті видаляє папку 3D Objects з File Explorer

З випуском Windows 8.1 Microsoft додала купу корисних папок на головну сторінку File Explorer. За...

Читати далі