Вопрос по java – Как указать пароль для команды runas при ее выполнении из Java

12

Я должен запустить пакетные файлы из Java-программы, которые нуждаются в административных привилегиях. Я использую приведенную ниже команду

runtime.getruntime().exec("runas /user:Admin \"C:\\Program Files\\test.bat\"");

но когда он запускается, он запрашивает пароль для учетной записи администратора. Как я могу дать пароль для этого.

Ваш Ответ

3   ответа
0

echo Pa$$W0Rd | some_command_expects_it
Файловое исключение java.io.IOException: не удается запустить программу & quot; echo & quot ;: Muzy
3

runtime.getruntime().exec("cmd /C echo YOUR_PASS | runas /user:Admin \"C:\Program Files\test.bat\"");
Но это не работает даже в CMD Muzy
У меня нет компьютера под управлением Windows, но вы можете попробовать & quot; cmd.exe / C echo & quot; вместо "эхо"?
Файловое исключение java.io.IOException: не удается запустить программу & quot; echo & quot ;: Muzy
Да, это помогает вызвать эхо CMD. исправить это в ответе
@Muzy Имейте в виду, что при использованииrunasисходная текущая папка для порожденного процесса изменится на%SYSTEM%\system32
6

так как он запрашивает пароль из терминала, а не из stdin. Нет эквивалента "sudo -s".

Спасибо за проницательный ответ, который имеет смысл :)

Похожие вопросы