2012-03-06 2 views
1

Мне нужно запустить скрипт установки в качестве администратора. Я попробовал несколько вещей, но ни один из них не работаетЗапуск скрипта с помощью команды runas

runas /user:Administrator install.bat 

Оболочка запрашивает пароль, а затем открывает новые окна оболочки, и закрывает его сразу, без выполнения сценария

runas /user:Administrator "call install.bat" 

Оболочка просит пароль, то неудачно с ошибкой

Unable to run - call install.bat 
2: The system cannot find the file specified 

то, что я не понимаю, что если я запускаю команду call install.bat без runas часть, сценарий запущен. Это не удалось для команд, которым нужны учетные данные администратора, но это ожидается.

У меня 2 вопроса:

  • Как запустить скрипт с правами администратора, используя команду Запуск от имени?
  • Не могли бы вы объяснить, почему следующий вызов не работает: runas /user:Administrator "call install.bat"

ответ

2

Использование cmd.exe, который ваш автомобиль интерпретировать .cmd и .bat файлы.

runas /user:Administrator "cmd.exe /K install.bat" 

или

runas /user:Administrator "cmd.exe /C install.bat" 

проверка cmd.exe /? для /K и /C.

Примечание: /C более вероятно, что вы хотите.

Побочное примечание после того, как ваш комментарий: runas имеет /env вариант:

/env    to use current environment instead of user's. 
+0

Проблема заключается в том, что он создает новое окно оболочки и очищает текущую среду (рабочий каталог, переменные пользовательской среды). – Sydney

+0

@Sydney: быть таким, как есть, это путь. Вы всегда можете написать сценарий оболочки, который вызывает 'install.bat' после подготовки среды. Кроме того, существует 'runas/env' ... но вы даже не указали это побочное условие в своем вопросе. – 0xC0000022L

+0

'/ env' решил проблему. – Sydney

0

Пакетные файлы выполняются интерпретатором (CMD). Чтобы запустить скрипт в привилегированном режиме, вам понадобится cmd с повышенными привилегиями. Попробуйте использовать cmd вместо вызова.

Смежные вопросы