Форум сайта python.su
Извините, в программировании чайник. Есть следующая задача. Запустить на Android SSH-сессию и передавать команду на выключение/гибернацию ПК, на котором установлена Windows и запущен SSH-сервер. Есть такая программа SSH button. Через неё без проблем получается это сделать. Просто указываю в настройках логин, пароль, порт и команду. (см. скриншот)
Но мне нужен именно скрипт в виде отдельно файла, который после выполнения задачи может быть удалён. Вроде с помощью python это можно реализовать. Рылся долго в интернете, удалось собрать такую конструкцию.
from paramiko import SSHClient, AutoAddPolicy hostname='100.100.100.100' username='user' password='12345678' cmd="%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate" client = SSHClient() client.set_missing_host_key_policy(AutoAddPolicy()) client.connect(hostname, username=username, password=password) client.exec_command(cmd) print("Connected to %s" % hostname)
Отредактировано 927863 (Фев. 17, 2021 15:28:35)
Прикреплённый файлы:
screen1.jpg (83,7 KБ)
Офлайн
927863Попробуй другую команду выполнить, чтобы убедиться, что они выполняются. Например, команду, создающую простой файл.
На сервере вижу, что подключение вроде происходит, но команда не выполняется.
Офлайн
замените ваше
cmd="%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate"
cmd=r"%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate"
Офлайн
doza_andЧеловечище! Заработало. Всего одна буква. Насчёт подсветки только не понял. Здесь, на сайте, и в редакторе на Android - одинаково чёрный цвет. Погуглил на тему применения r, но пока не нашёл конкретики, почему и где надо использовать. Буду благодарен, если направите в нужном направлении.
замените ваше
Офлайн
Как и в любом языке программирования питон предоставляет возможность включать в строковые литералы непечатаемые символы. Например символ перевода каретки обозначается “\r”. Подавить такую интерпретацию можно либо написав два бек слеша либо запретив интерпретацию для всей строки, что и делает символ r
Офлайн