Альтернативное решение
Похоже, что runas
не позволяет получить то, что вы хотите (без серьезного нарушения безопасности ... см. Ниже).Однако существует сторонняя утилита с именем PsExec
, которая делает это .Со страницы Sysinternals PsExec :
Usage: psexec [\\computer[,computer2[,...] | @file\]][-u user [-p psswd][-n s]
[-r servicename][-h][-l][-s|-e][-x][-i [session]]
[-c executable [-f|-v]][-w directory][-d]
[-<priority>][-a n,n,...] cmd [arguments]
( Примечание: идея использовать PsExec
возникла из ответа Лорен 7060 на этот вопросна Spiceworks ).
Итак, что-то вроде:
psexec -u MYUSER -p MYPASSWORD MYBATCH.BAT
должно делать то, что вы хотите.
Что не't Work
Как вы обнаружили, runas
обычно предлагает пользователю ввести пароль.Интересно, что вы можете либо направить данные в runas
:
echo password | runas ...
или перенаправить ввод из файла:
runas ... < PASSWORD.TXT
и runas
будет не приглашениедля пароля.Однако я мог , а не получить runas
, чтобы принять пароль как действительный, однако я отформатировал данные.В последнем случае (перенаправление из файла) я пробовал как с окончанием строки, так и без него, но ни один из них не работал.Моя догадка заключается в том, что канал / редирект достаточно для остановки runas
запроса пароля, но он не действительно читает что-либо из stdin
.Это частично поддерживается этой статьей на веб-сайте Tech Torials , в которой описывается метод, при котором может использовать runas
без запроса пароля, но только , если вы установили пароль учетной записи для пустой строки.