#java #remote-access
#java #удаленный доступ
Вопрос:
Я хочу подключиться к удаленному компьютеру с рабочим столом Windows с локального компьютера с помощью программы Java.
Я должен проверить место на диске и несколько других служб на удаленной машине.
Ответ №1:
Подключение к удаленному рабочему столу
Java
// Creating credentials
Process p = Runtime.getRuntime().exec("cmdkey /generic:" ip
" /user:" userName
" /pass:" password);
p.destroy();
Runtime.getRuntime().exec("mstsc /v: " ip " /f /console");
Thread.sleep(2*60*1000); // Minutes seconds milliseconds
// Deleting credentials
Process p1 = Runtime.getRuntime().exec("cmdkey /delete:" ip);
p1.destroy();
- С помощью cmdkey мы можем создать или удалить наши учетные данные, относящиеся к текущему пользователю.
C:> cmdkey /generic:192.168.0.11 /user:XXXXX /pass:XXXXX
CMDKEY: Credential added successfully.
C:> mstsc.exe /v:192.168.0.11 /w:800 /h:600
Connecting to Remote Desktop.
C:> cmdkey /delete:192.168.0.11
CMDKEY: Credential deleted successfully.
Комментарии:
1. Привет, Питер, есть ли у нас какое-либо решение, в котором политика аутентификации сервера не разрешает вход для сохраненных учетных данных.
Ответ №2:
Вы также могли бы рассмотреть решение с RDP на Java.
Существует множество решений. Ознакомьтесь с ними при сравнении проектов Java Remote Desktop.
Комментарии:
1. Это близко к ответу только для ссылок. Как насчет того, чтобы оценить некоторые из них и вернуться с описанием и рекомендацией одного (или нескольких) из них?
Ответ №3:
Ответ зависит от того, какую операционную систему использует ваш локальный компьютер (хост) для подключения к вашему удаленному целевому окну Windows.
Если это окно на базе Unix, я бы рекомендовал использовать библиотеку с открытым исходным кодом j-Interop.
Обратите внимание, что вам может потребоваться вручную изменить реестр в целевом поле, чтобы он мог работать правильно (обязательно ознакомьтесь с часто задаваемыми вопросами на веб-сайте проекта). Если вы обнаружите странные проблемы (исключения, возникающие при подключении), вот хорошая статья, которая помогла мне их решить: Подчиненные устройства Windows не запускаются через DCOM
С другой стороны, если вы используете Windows box в качестве хоста, то ваша жизнь будет намного проще. Я бы рекомендовал использовать:
Обратите внимание, что все вышеперечисленные проекты являются проектами с открытым исходным кодом.
Как упоминалось выше, существует бесплатная версия j-Integra, но я никогда не пробовал ее использовать.
Комментарии:
1. Привет CAS, я знаю IP-адрес удаленного компьютера, имя пользователя и пароль. Возможно ли подключить удаленный компьютер с этими деталями на Java?
2. @ChanGan да, но помните, что у вас должны быть открыты и запущены порты WMI в окне Windows, к которому вы хотите получить доступ в первую очередь.
3. Похоже, что это НЕ статический IP .. это сработает??
4. @ChanGan если IP меняется слишком часто, вы столкнетесь с проблемами в долгосрочной перспективе. Но для первоначального теста я бы попробовал и посмотрел, сможете ли вы заставить его работать. Может быть, вы можете быстро протестировать с помощью виртуальной машины Win в вашей сети? Я бы рекомендовал Jawin для Win-> Выиграть (документация и образцы являются хорошей отправной точкой)
Ответ №4:
Вы могли бы установить SSH-сервер на свой удаленный рабочий стол и вы можете написать Java-программу, используя библиотеки jcraft и jsch на своем локальном компьютере, чтобы установить SSH-соединение с удаленным рабочим столом.