Запускать от имени другого пользователя без пароля из командной строки с повышенными привилегиями в Windows


13

Есть еще несколько утилит для работы в качестве другого пользователя (например: runas, cpau, psexec) , но все они требуют пароля для соответствующего пользователя, даже если вы уже работаете с повышенными привилегиями.

Я хотел бы добиться следующего:

  1. У меня уже есть повышенное приглашение ( Administrator)
  2. Я хотел бы выполнить команду (например: calc.exe) , как johnбез ввода / передавая свой пароль к пусковой утилите.

Например, в системе Unix вы можете просто:

root@server:~# su - john

Ответы:


3

Я использую это все время. Требуется ввод учетных данных при первом использовании (и при изменении пароля), но это все.

runas /user:yourusernamehere /savecred "Your Executable Here"

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

C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"

3
Спасибо за подсказку, но, к сожалению, / savecred в моем случае неприменим, потому что 1) учетные данные пользователя могут измениться И 2) команды, которые должны выполняться, генерируются динамически (поэтому мне придется вводить пароль для каждой команды). Кроме того, это должно работать в фоновом режиме, без какого-либо взаимодействия с пользователем.
Разван

@Razvan вы можете обернуть ваши команды в файл сценария, при условии, что имя совпадает, ваши команды могут легко меняться. Что касается изменения учетных данных ... вам нужно либо передать новые учетные данные нашей кэшированной копии. Третьего варианта нет.
Тим Бригам

3

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

Предотвращает забавные вещи и позволяет проводить чистый одитинг. Если что-то происходит под учетной записью пользователя, пользователи не могут обвинять администраторов в этом без их согласия.


Но это техническое ограничение? Я мог бы подумать, что, возможно, некоторые соответствующие пользовательские файлы, необходимые для установления нового сеанса, шифруются с использованием учетных данных пользователя, поэтому было бы невозможно получить новый сеанс без предоставления соответствующих учетных данных (это только предположение).
Разван

Я не понимаю ваш комментарий. Это техническое ограничение в том смысле, что Microsoft решила спланировать Windows так, чтобы вы не могли выдать себя за учетную запись пользователя, не зная ее пароля. Почему и как не имеет значения. Единственный вариант - ввести пароль или принять, что вы не можете выдать себя за любую учетную запись без него.
Даниэль

1
@ Даниил, не могли бы вы дать ссылку на ваше заявление о том, что это осознанное стратегическое решение?
ivan_pozdeev

Разве ACL не позволяет это сделать?
RandomInsano

3

В Windows вы можете сделать это только в том случае, если существует текущий сеанс входа пользователя, которого вы пытаетесь выдать. Это связано с локальной групповой политикой «Олицетворять клиента после аутентификации», позволяющей членам группы «Администраторы» делать именно это (находится в разделе «Локальные политики»> «Назначения прав пользователя»).

Известный мне инструмент, который позволяет вам сделать это, - Process Hacker 2. Запустите инструмент как локальный администратор и найдите процесс, который выполняется от имени пользователя, которого вы хотите выдать себя за другого. Щелкните правой кнопкой мыши на нем, выберите «Разное»> «Запуск от имени этого пользователя ...», затем введите двоичный путь, который вы хотите запустить от имени этого пользователя, например, cmd. Затем CMD откроется как этот пользователь, не запрашивая пароль этого пользователя.


-3

Если вы поместите .exe в их загрузочную папку, вы сможете запустить его как они.


2
уточняя: вы не запускаете это как они ... вы заставляете их запускать это для вас.
KevinKTI

2
Поскольку пользователь вводит свой пароль при входе в систему, это, похоже, не отвечает на вопрос.
птенцы
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.