@DenisShahbazyan

Как через python передать в cmd ввод данных и получить вывод?

Я выполняю вручную команду:
runas /user:%username% cmd
После выполнения нужно ввести пароль, я нажимаю Enter, мне выдается ошибка, примерно такая
C:\Users\user>runas /user:%username% cmd
Введите пароль для user:
Попытка запуска cmd от имени пользователя "DESKTOP-T898DLN\user" ...
ОШИБКА RUNAS: Не удается запустить - cmd
1326: Неверное имя пользователя или пароль.


Я хочу выполнить эти действия через Python и получить ошибку в переменную, а максимум что получалось получить - это строку:
Введите пароль для user:

Пробовал так:
import subprocess


cmd_command = 'echo. | runas /user:%username% cmd'

# Запускаем процесс с capture_output=False, чтобы избежать блокировки ввода
process = subprocess.Popen(
    cmd_command, 
    stdin=subprocess.PIPE, 
    stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE, 
    shell=True
    )

# Вводим пустой пароль
password = b'your_password_here\n'

# Отправляем пароль вводом в процесс
stdout, stderr = process.communicate(input=password)

# Выводим результат
print(f"Вывод: {stdout.decode('cp866')}")
print(f"Ошибка: {stderr.decode('cp866')}")


Цель сего мероприятия в дальнейшем, узнать есть ли пароль на текущей записи windows. Может костыль но по другому не придумал...
  • Вопрос задан
  • 541 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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