2013-04-19 2 views
9

Этот Stack Overflow   вопрос предлагает команду, которая выглядит так, как будто он должен работать, но это не делает (что ответ удален сейчас, хотя):Как выполнить команду RUNAS в одной строке

Single line command for Run as a different user on Window 7 that contains a password also

команда будет:

echo PaSsWoRd | runas /user:Administrator cmd 

Однако он говорит:

неизвестное имя пользователя или неверный пароль.

Данные, безусловно, правильные. Например, если я должен был бежать:

runas /user:Administrator 

... и на следующей строке, если я напечатал в PaSsWoRd, он не будет работать без проблем.

+0

Как насчет 'runas/user: Administrator" cmd "<" C: \ pass.txt "' – Todd

ответ

15

runas command does not allow a password on its command line. Это по дизайну (а также причина, по которой вы не можете передать ему пароль в качестве ввода). Раймонд Чен говорит это красиво:

В программе RunAs требуется ввести пароль вручную. Почему он не принимает пароль в командной строке?

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

Иными словами, функция отсутствует, чтобы устранить соблазн использовать эту функцию небезопасно.

Билл

+1

Это полностью побеждает. Очень утомительно, что идея «безопасности» вызывается разработчиками программного обеспечения, которые стараются быть умнее, чем пользователь. Если пользователь хочет вставить пароль, то это их прерогатива. Вместо этого все мы, пересекающие эту ссылку, собираемся пойти и искать другие способы использования SUDO-эквивалента в окнах с помощью других недобросовестных средств, сгибающих правила и тратя время. Вместо того, чтобы один пакетный файл был уязвим, я собираюсь отправить, уменьшая общую безопасность на машине, чтобы получить «sudo» для работы. Дизайн никогда не должен быть более умным, чем пользователь. Ты облажался! –

+0

1) Я не принял этого решения, поэтому разглагольствовать об этом мне бессмысленно. 2) Microsoft определенно приняла правильное решение. Вложение паролей в скрипт - это вопиющая плохая идея, поскольку основная причина, о которой уже говорилось в ответе. –

+0

вы могли бы psexec от microsoft sysinternals, например. psexec -user MyUser -p MyPassword «cmd» – user797717

0

Если же принять водопроводный вход, то в этом случае ваш «PASSWORD» будет иметь косое пространство.

Это то, что нужно для наблюдения.

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

  • Нет связанных вопросов^_^