Есть идеи удаленного запуска приложения Python, использующего socket через psexec

Написал клиент-серверное приложение на Python, использующее метод socket. Затем упаковал его через pyinstaller в exe-тип.

Необходимо запускать клиента на удалённом хосте. Если запуск клиента происходит локально с удалённого хоста, то приложение работает и данные через сокет передаются. Если запускать приложение удаленно, допустим так:

psexec \\xxx.xxx.xxx.xxx -d -i -w work_path "path_client"

То данные по сокет не отправляются. Происходит подключение сервера и клиента, но клиент завершает работу на шаге .recv().

В команде psexec указывал данные сетевого админа, не помогло. Добавлял в psexec -s, не помогло. Отключал антивирус, не помогло. Заходил на удаленный хост под администратором, не помогло. В общем метод Socket при запуске удаленно утилитой psexec не работает, хотя запросы в гугл говорят обратное.

Есть идеи, как клиента можно запустить удаленно?

Также, при удаленном запуске окна сообщений, созданные ctype.windll.user32.MessageBoxW(), отображаются некорректно, не видно ни текста, ни кнопок, ни иконок, просто черный прямоугольник:

введите сюда описание изображения.

Получается, что и здесь удаленный запуск через psexec, работает неполноценно, не хватает прав?


Ответы (1 шт):

Автор решения: Владислав К.

Всё, я проверил, действительно для выполнения некоторых удаленных запусков приложений необходимо указывать номер сессии, т. е. в команде psexec указывать ключ -i и номер сессии, которую можно узнать командами query session или qwinsta. В моём же случае ещё необходимо было добавить паузу между удаленным запуском клиента и локальным запуском сервера.

→ Ссылка