Я хотел бы, чтобы моя программа на С ++ на ПК1 запускала другую программу на ПК2 с указанием имени хоста ПК2. Я не хочу сейчас слишком усложнять ситуацию, поэтому давайте просто предположим, что программа находится на пути поиска исполняемых файлов на ПК2. Насколько я понимаю, это можно сделать через ssh как-нибудь? Предполагая (для дальнейшего упрощения), что у меня есть учетная запись на ПК1 и ПК2, чтобы ssh просто подключил меня, если бы я вошел в систему на ПК1 (без какого-либо взаимодействия, которое потребовало бы от меня ввода имени пользователя и пароля), как бы я идти делать это? Было бы https://www.libssh.org/ помочь упростить вещи?
Решение
Создайте командную строку для выполнения удаленной команды, используя ssh , Затем выполните эту команду, используя system() ,
std::string pc2_hostname; std::string cmd = «ssh » + pc2_hostname + » command_to_execute»; system(cmd.c_str());
Другие решения
Вас может заинтересовать эта библиотека C ++ RPC:
как запустить windows на другом компьютере
Из собственного примера на удаленном компьютере:
#include #include «rpc/server.h» void foo() < std::cout int main(int argc, char *argv[]) < // Creating a server that listens on port 8080 rpc::server srv(8080); // Binding the name «foo» to free function foo. // note: the signature is automatically captured srv.bind(«foo», // Binding a lambda function to the name «add». srv.bind(«add», [](int a, int b) < return a + b; >); // Run the server loop. srv.run(); return 0; >
На локальном компьютере:
#include #include «rpc/client.h» int main() < // Creating a client that connects to the localhost on port 8080 rpc::client client(«127.0.0.1», 8080); // Calling a function with paramters and converting the result to int auto result = client.call(«add», 2, 3).as(); std::cout
Чтобы выполнить абсолютно все, вы можете выполнить «системный» вызов на удаленном компьютере. Итак, на стороне сервера есть:
// Binding a lambda function to the name «add». srv.bind(«system», [](char const * command) < return system(command); >);
А теперь на стороне клиента вы делаете:
auto result = client.call(«system», «ls»).as();
Очевидно, вам нужно подумать о безопасности, если вы хотите использовать такую библиотеку. Это будет хорошо работать в доверенной среде локальной сети. Это может быть не очень хорошая идея в публичной сети, такой как Интернет.
Источник: web-answers.ru
Как запустить приложение, написанное на Qt C++, на другом ПК, где Qt нету?
У меня на моем ПК, все запускается без ошибок. В папку с .exe я положил все нужные библиотеки. Но на другом ПК пишет, что Qt плагин не найден. Подскажите пожалуйста, что делать?
Как подключится к ПК с другого компьютера
Отслеживать
6,641 6 6 золотых знаков 29 29 серебряных знаков 52 52 бронзовых знака
задан 8 авг 2019 в 11:32
Roman Khvalko Roman Khvalko
87 6 6 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
- собрать релиз
- использовать программу windeployqt Ее нужно запустить из папки, где лежит .exe вашей программы.
Отслеживать
ответ дан 8 авг 2019 в 11:36
22.1k 2 2 золотых знака 32 32 серебряных знака 52 52 бронзовых знака
У меня не запускается windeployqt. Тоесть запускается, но только на мгновенье, а потом сразу же закрывается
8 авг 2019 в 12:41
8 авг 2019 в 13:13
С папки, где лежит .exe. Просто запустил и все.
9 авг 2019 в 6:49
А теперь пришло время прочитать пост на Хабре(на который я ссылаюсь). Эта программа — утилита с интерфейсом командной строки. Ее и запускать надо из командной строки.
9 авг 2019 в 7:11
А если сделать без специализированного ПО, то можно так:
Во-первых вот тут есть великолепная инструкция, которой всегда пользуюсь.
Во-вторых, если своими словами, как-то так:
- В версии сборки ставите Release
- Собираете приложение
- Копируете Ваш .exe -файл в другое расположение
- Запускаете
- Вылазит ошибка о том, что не хватает определённой .dll -библиотеки
- Ищете нужную виндовым поиском по файлам и подставляете в ту папку, куда Вы скопировали .exe
- Если вылазит ошибка не связанная с наличием какой-либо библиотеки, копируете все библиотеки из папки с библиотеками Qt (название начинается с Q и расширение .dll ) в папку с Вашим проектом, а потом удаляете лишние. Долго, но действенно
- Когда Ваше приложение, наконец, запустилось и все лишние библиотеки удалены, то, что осталось копируете на любой другой комп без Qt и запускаете.
Отслеживать
ответ дан 8 авг 2019 в 11:47
5,127 1 1 золотой знак 13 13 серебряных знаков 31 31 бронзовый знак
windeployqt — это утилита из состава Qt под Windows.
8 авг 2019 в 11:57
8 авг 2019 в 11:57
8 авг 2019 в 11:59
для мака точно был macdeployqt, может и для linux есть, но не смотрел. А вот c windeployqt у меня так до конца и не получилось подружиться, он мне не добавлял qml-библиотеки. В целом было ощущение (каюсь, подробно не копал) что он подцепил только то что безусловно линкуется на старте приложения и без чего оно даже не встает, а всякие qml-компоненты линкуются уже потом и как плагины, так что приложение успешно запускается, но дальше их не находит и завершается с ошибкой
8 авг 2019 в 16:09
Источник: ru.stackoverflow.com
Использование PsTools для управления другими ПК из командной строки
- Подключение к удаленным компьютерам (синтаксис для всех утилит)
- Настройка удаленного доступа администратора
- PsExec
Видео: Использование PsTools для управления другими ПК из командной строки
2023 Автор: Geoffrey Carr | [email protected] . Последнее изменение: 2023-07-11 09:29
- Каковы инструменты SysInternals и как их использовать?
- Понимание Process Explorer
- Использование Process Explorer для устранения неполадок и диагностики
- Понимание Process Monitor
- Использование Process Monitor для устранения неполадок и поиска файлов реестра
- Использование автозапуска для работы с процессами запуска и вредоносными программами
- Использование BgInfo для отображения информации о системе на рабочем столе
- Использование PsTools для управления другими ПК из командной строки
- Анализ и управление файлами, папками и дисками
- Объединение и использование инструментов вместе
Если вы когда-либо хотели подключиться к другому компьютеру и запустить команду, быстро получить информацию о запущенных процессах и, возможно, убить их или даже остановить службу на другом ПК, вы можете использовать утилиты PsTools для выполнения всех этих задач и даже Больше.
Очевидно, что вы можете использовать Remote Desktop или аналогичную службу для подключения к любому компьютеру Windows и фактически видеть рабочий стол и делать все, что вы делаете локально, но утилиты PsTools позволяют выполнять множество задач из командной строки — или еще лучше, из сценарий, который вы можете повторно использовать позже.
Это тип утилит, которые лучше всего работают в корпоративной среде, и освоение этих инструментов, безусловно, значительно улучшит вашу работу в системном администрировании, сэкономит ваше время и позволит вам делать что-то гораздо разумнее. Делать вещи умнее и быстрее — это критическое умение быть отличным системным администратором.
В наборе PsTools есть двенадцать инструментов, и хотя некоторые из них чрезвычайно полезны, другие были заменены инструментами, встроенными в более поздние версии Windows, и есть несколько других, которые не подходят большинству людей. Мы рассмотрим их все, чтобы вы поняли, как они работают, и почему вы можете использовать их.
- PsExec — выполняет процессы на удаленном компьютере
- PsFile — показывает файлы, которые открываются на удаленном компьютере через сеть
- PsGetSid — отображает идентификатор безопасности для компьютера или пользователя
- PsInfo — содержит информацию о системе
- PsKill — убивает процессы по имени или ID
- PsList — список информации о процессах в командной строке
- PsLoggedOn — список учетных записей, которые регистрируются на компьютере или подключаются удаленно
- PsLogList — вытащите журнал событий в командной строке
- PsPasswd — изменение пароля для пользователей
- PsPing — довольно простая утилита ping с некоторыми дополнительными функциями
- PsService — список и внесение изменений в службы Windows
- PsShutdown — выключение, выход из системы или приостановка работы компьютера
- PsSuspend — приостанавливать и возобновлять процессы (а не убивать их)
It’s worth noting that you can use a tool like PsExec to execute all sorts of command-line utilities on remote computers… including really useful ones like the Autoruns command line tool and many more. The possibilities are endless once you’ve embraced the power of PsTools.
Все эти инструменты можно использовать на локальных компьютерах, но они в основном полезны для подключения к удаленным компьютерам и выполнения команд на них.
Подключение к удаленным компьютерам (синтаксис для всех утилит)
Все утилиты могут запускаться на локальном или удаленном компьютере, поэтому все они имеют один и тот же первый аргумент для имени компьютера, если это необходимо. Обратите внимание, что вы можете использовать IP-адрес, если хотите. Если вы опустите этот аргумент, команда будет работать на вашем локальном компьютере.
Если вам нужно подключиться к альтернативным учетным данным, потому что учетная запись вашего локального компьютера имеет другое имя пользователя и пароль, чем другой компьютер, вы можете использовать параметры -u и -p, хотя мы бы заметили, что вы, возможно, не захотите использовать -p on в командной строке с паролем в команде по соображениям безопасности.Обновление: начиная с последней версии PsExec, ни один инструмент больше не пропускает пароли как чистый текст, поэтому беспокоит только то, что кто-то может читать ваши файлы сценариев и видеть там пароль.
psinfo computername -u “user” -p “Password”
«Пользовательская» часть команды изменится на «DOMAIN user», если вы находитесь в доменной среде и должны измениться с текущего пользователя.
Замечания:вам обычно необходимо подключиться к удаленным компьютерам с учетной записью администратора.
Настройка удаленного доступа администратора
Если вы находитесь в среде домена, которую большинство людей, которым нужно использовать PsTools, будет, вы можете полностью игнорировать этот раздел, поскольку все должно работать нормально. Для любого пользователя, работающего под управлением Windows 7, 8 или Vista, в домашней среде или с использованием нескольких компьютеров в офисе без домена, вам нужно будет настроить контроль учетных записей пользователей на удаленном компьютере, чтобы позволить правильному запуску PsTools.
Проблема хорошо описана Microsoft:
When a user who is a member of the local administrators group on the target remote computer establishes a remote administrative connection by using the net use * remotecomputerShare$ command, for example, they will not connect as a full administrator. The user has no elevation potential on the remote computer, and the user cannot perform administrative tasks.
Чтобы объяснить это по-другому, когда вы пытаетесь подключиться к другому компьютеру и запускаете что-то, что требует доступа администратора, нет способа вызвать приглашение UAC и принять его с вашего компьютера, поэтому он не будет подключаться как администратор.
И снова, если вы находитесь в среде домена, эта проблема не существует и ее не нужно менять. И если вы просто тестируете кучу виртуальных машин, вам не о чем беспокоиться.
Чтобы настроить UAC для запуска PsTools, вам нужно открыть редактор реестра и перейти к следующему ключу:
После того, как вы там, создайте новый 32-разрядный DWORD с правой стороны, дайте ему имя LocalAccountTokenFilterPolicy и значение 1. Вам не нужно перезагружать компьютер, чтобы этот параметр вступил в силу.
Note: just to clarify, this setting needs to happen on the remote computer that you are connecting to.
PsExec
PsExec, вероятно, самый мощный инструмент в комплекте, так как вы можете выполнять любую команду в своей локальной командной строке, точно так же, как выполнять ее на удаленном компьютере. Это включает все, что можно запустить в командной строке — вы можете изменять значения реестра, запускать скрипты и утилиты или подключаться с этого ПК к другому. Вывод команд будет отображаться на вашем локальном ПК, а не на удаленном.
psexec computername apptorun.exe
Реально, однако, вы хотели бы также включить имя пользователя и пароль в командной строке. Например, чтобы подключиться к другому ПК и проверить список сетевых подключений, вы должны использовать что-то вроде этого:
psexec computername -u User -p Password ipconfig
Эта команда будет производить вывод, подобный следующему:
Популярная тема
Использование диалога командной строки запуска Kubuntu (Alt + F2)
Kubuntu linux — это вариант Ubuntu, который использует среду рабочего стола KDE вместо Gnome. Однако рабочий стол KDE можно установить на Ubuntu.
Проверьте использование диска на Ubuntu из командной строки
Ubuntu Linux, как и все разновидности unix, включает утилиту командной строки du. du означает использование диска, поскольку, я уверен, вы предполагали.
Новый синтаксис Vista для открытия элементов панели управления из командной строки
В предыдущих версиях Windows до Vista вы всегда можете открывать элементы панели управления, передавая control.exe имя файла * .cpl, представляющего элемент, который вы пытались открыть. Например, если вы хотите открыть свойства экрана, вы можете запустить команду «control.exe desk.cpl».
Бесплатное программное обеспечение для управления задачами для управления совместной работой
Вот список лучших 5 бесплатных программ для управления задачами для Windows 10/8/7, которые помогут вам управлять совместной работой. Руководители групп будут пользоваться этими услугами для эффективного управления командной работой.
Параметры командной строки командной строки, переключатели, параметры
Этот пост рассказывает о контрольном диске командной строки или параметрах chkdsk, переключателях и параметрах в Windows 10/8/7 и о том, как использовать команды chkdsk, такие как chkdsk / r и т. Д.
Источник: ru.begin-it.com