Windows Tips & News

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

ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителността на системата

Понякога трябва да създадете пакетен файл, който включва команди, които изискват повишени права. Поради функцията UAC, включена в Windows след Windows Vista, когато стартирате пакетен файл, той се отваря без необходимите права за достъп, освен ако не щракнете с десния бутон върху него и изберете „Изпълни като администратор“ от контекста меню. Ето как можете да създадете пакетен файл, който автоматично ще се издигне.

Реклама


Преди да продължите, вижте как да добавите пакетен файл (*.bat) към новото меню на File Explorer. Поставете следното съдържание в началото на вашия пакетен файл:
:: Автоматично проверявайте и получавайте администраторски права V2. @ехото изключено. CLS. ECHO. ECHO ECHO Изпълнява се администраторска обвивка. ECHO :init. setlocal DisableDelayedExpansion. задайте "batchPath=%~0" за %%k в (%0) задайте batchName=%%~nk. задайте "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges. МРЕЖЕН ФАЙЛ 1>NUL 2>NUL. if '%errorlevel%' == '0' ( отидете gotPrivileges ) else ( отидете 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%" %* изход /B :gotPrivileges. setlocal & pushd. cd /d %~dp0. ако '%1'=='ELEV' (дел "%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 и да оптимизирате производителността на системата
Mozilla, за да унищожи всички съществуващи разширения във Firefox 57

Mozilla, за да унищожи всички съществуващи разширения във Firefox 57

ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителностт...

Прочетете още

5 задължителни добавки за вашата нова инсталация на Firefox

5 задължителни добавки за вашата нова инсталация на Firefox

ПРЕПОРЪЧВА: Щракнете тук, за да коригирате проблеми с Windows и да оптимизирате производителностт...

Прочетете още

Microsoft вече ви позволява да инсталирате Windows 11 на всеки компютър, съвместим с Windows 10

Microsoft вече ви позволява да инсталирате Windows 11 на всеки компютър, съвместим с Windows 10

Наред с а нова версия за предварителен преглед на Windows 11, Microsoft обяви значителна актуализ...

Прочетете още