2014-08-28 3 views
0

Я пытаюсь разработать простой скрипт, который может запускать второй скрипт в качестве локального администратора устройства. В качестве первого сценария я в настоящее время пытаюсь:Использование RUNAS для использования локальной учетной записи администратора для запуска второго командного файла с повышенными привилегиями

set name=%computername% 
runas /noprofile /user:%name%\Administrator "cmd.exe /c %cd%bg2.2.bat"  

Когда я запускаю скрипт, кажется, никогда не запускать второй сценарий, который находится в том же каталоге. Второй скрипт предназначен только для копирования файлов.

del "C:\Windows\obh_logo.bmp" 
copy "%cd%obh_logo.bmp C:\Windows\obh_logo.bmp" 

Когда первый скрипт запускается я запрос на ввод пароля администратора, как и ожидалось, и как только я вхожу его, второй командной строки, кажется, мерцают на экране, а затем исчезает. Кажется, что он не запускает второй скрипт. Что, по-видимому, является причиной того, что это не работает?

ответ

0

%cd%, вероятно, не указывают, где вы думаете, что делает, (просто проверял, конечно, переменная заменяется перед командой вызывается и на самом деле указывает на первых сценариев Dir, но проблема по-прежнему сохраняется в второй скрипт)
runas изменяет рабочий каталог для экземпляра cmd.exe, который вы запускаете, возможно, в C: \ Windows \ system32.
замените его на %~dp0, что дает диск и путь к текущему пакетному файлу.

Но! Ваш скрипт не будет запускать второй файл с повышенным значением, просто под учетной записью администратора, что не является тем же. Требуется ручное подтверждение, см. here для возможных путей запроса возвышения из вашего скрипта.

Теперь я предполагаю, что недостающие права - это настоящая проблема, добавьте оператор pause в свой второй скрипт, чтобы посмотреть его, или назовите его cmd /k, чтобы консоль не закрывалась.