Подтвердить что ты не робот

Автоматический запуск командного файла в качестве администратора

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

Я пробовал команду RUNAS, но для этого требуется пароль администратора.

Я ищу альтернативу для запуска пакетного файла, щелкнув правой кнопкой мыши на нем и работая как администратор. Я хочу автоматизировать его из другого пакетного файла.

4b9b3361

Ответ 1

Я запускал пакетные файлы, уменьшая аутентификацию пользователя Windows (UAC). Это сработало для меня.

Ответ 2

В Windows 7:

  • Создайте ярлык для этого пакетного файла

  • Щелкните правой кнопкой мыши на этом ярлыке и выберите "Свойства"

  • Нажмите кнопку Advanced, чтобы найти флажок для запуска с правами администратора

Проверьте снимок экрана ниже

Screenshot

Ответ 3

Использование

runas /savecred /profile /user:Administrator whateveryouwanttorun.cmd

Он будет запрашивать пароль только в первый раз. Он не будет запрашивать пароль еще раз, если пароль не изменен и т.д.

Ответ 4

Вы можете использовать PowerShell для запуска b.bat как администратора с a.bat:

set mydir=%~dp0

Powershell -Command "& { Start-Process \"%mydir%b.bat\" -verb RunAs}"

Он предложит пользователю диалог подтверждения. Пользователь выбирает YES, а затем b.bat запускается как администратор.

Ответ 5

Runas.exe здесь не работает. Вы можете использовать VBScript для вызова глагола оболочки "Запуск от имени администратора". Элементы Elevation Powertoys содержат пакетный файл, который позволяет вам вызывать команду повышенного уровня:

elevate cmd.exe

http://blogs.technet.com/b/elevationpowertoys/

Ответ 6

Если вы пытаетесь вызвать приглашение Windows UAC (тот, который помещает весь экран в черный цвет и спрашивает, предоставите ли вы права администратора на следующую задачу), RUNAS - это не самый плавный способ сделать это, поскольку:

  • Вы не получите запрос авторизации UAC, даже если вы вошли в систему как администратор и
  • RUNAS ожидает, что у вас есть пароль администратора, даже если ваш пользователь настроен как локальный администратор, и в этом случае прежний пароль не является практикой обеспечения безопасности, особенно в рабочих средах.

Вместо этого попробуйте скопировать и вставить следующий код, чтобы убедиться, что ваш командный файл работает с правами администратора:

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (
    echo Requesting Admin access...
    goto goUAC )
    else goto goADMIN

:goUAC
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:goADMIN
    pushd "%CD%"
    CD /D "%~dp0"

rem --- FROM HERE PASTE YOUR ADMIN-ENABLED BATCH SCRIPT ---
echo Stopping some Microsoft Service...
net stop sqlserveragent
rem --- END OF BATCH ----

Это решение работает на 100% при настройках Windows 7, 8.1 и 10 с включенным UAC.

Ответ 7

Следующая команда может быть сохранена в виде файла bat, заменив имя файла bat и может быть запущена в порядке, чтобы запустить bat script с отметкой высоты. Следующая команда применяется для Windows 7 64 бит.

"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -windowstyle hidden -nologo -noprofile -executionpolicy bypass -command "start-process -verb 'runas' -filepath BATCHFILENAME.BAT

Ответ 8

Вы можете использовать служебную программу командной строки elevate (ссылка для скачивания https://drive.google.com/open?id=0Bz7qe_olclTwVGZLUklFMHNxQ00):

Это описание использования:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog