2012-04-03 9 views
1

Я пытаюсь автоматизировать некоторую аутентификацию, когда я подключаюсь через RDP, и аутентифицироваться на конкретном сервере, используя учетные данные, взятые из файла PROPERTIES.Java - подключение к RDP-серверу в Windows

В окнах встроенный RDP-клиент - mstsc.exe, но похоже, что вы можете предоставить учетные данные для входа через командную строку, например, на Linux и Mac.

Есть ли способ обхода Windows, используя mstsc.exe, где я могу авторизоваться автоматически, без какого-либо взаимодействия с пользователем?

Спасибо.

ответ

1

Не могли бы вы использовать пользовательский файл подключения? Затем передать его в Mstsc например:

mstsc customfile.RDP 

Вот то, что RDP-файл выглядит, я сохранил учетные данные, обратите внимание на полное поле ADDRESS и поле USERNAME.

screen mode id:i:2 
use multimon:i:0 
desktopwidth:i:1680 
desktopheight:i:1050 
session bpp:i:32 
winposstr:s:0,3,0,0,800,600 
compression:i:1 
keyboardhook:i:2 
audiocapturemode:i:0 
videoplaybackmode:i:1 
connection type:i:2 
displayconnectionbar:i:1 
disable wallpaper:i:1 
allow font smoothing:i:0 
allow desktop composition:i:0 
disable full window drag:i:1 
disable menu anims:i:1 
disable themes:i:0 
disable cursor setting:i:0 
bitmapcachepersistenable:i:1 
full address:s:###.###.###.###:#### 
audiomode:i:0 
redirectprinters:i:1 
redirectcomports:i:0 
redirectsmartcards:i:1 
redirectclipboard:i:1 
redirectposdevices:i:0 
redirectdirectx:i:1 
autoreconnection enabled:i:1 
authentication level:i:2 
prompt for credentials:i:0 
negotiate security layer:i:1 
remoteapplicationmode:i:0 
alternate shell:s: 
shell working directory:s: 
gatewayhostname:s: 
gatewayusagemethod:i:4 
gatewaycredentialssource:i:4 
gatewayprofileusagemethod:i:0 
promptcredentialonce:i:1 
use redirection server name:i:0 
username:s:<USERNAME> 

передать это запросу mstsc.exe. Я попытаюсь посмотреть, где хранится пароль.

Я бы не назвал это супер безопасным. Я думаю, что пароль хранится зашифрованным, это будет несколько минут, пока я не выясню, как это сделать.

Что вы пытаетесь выполнить точно? MSTSC не возвращает значения на основе аутентификации. Итак, я не уверен, что вы планируете захватить.

+0

Спасибо за ответ. Я пишу программное обеспечение для автоматизации аутентификации SPNEGO через RDP. Я смотрел файл .RDP, но я пишу программное обеспечение, которое будет использоваться тестером для тестирования операций в разных комбинациях пользователя/пароля. Эти учетные данные будут, скорее всего, сохранены в файле .PROPERTIES. Мне нужно создать файл .RDP для каждого пользователя после того, как я извлечу их учетные данные из файла .PROPERTIES. – eoinzy

+0

@eoinzy Это правда, что вам придется создавать файл каждый раз, но это может быть временным. Помимо UN, PW и IP-адреса содержимое файла может оставаться неизменным. Вы можете уничтожать или перезаписывать файл каждый раз, когда он обрабатывается. Я полагаю, пользователь будет контролировать эту программу Java каждый раз? Я пытаюсь понять преимущества программирования этого. Спасибо – kevingreen

+0

Пользователь будет тестером программного обеспечения. В настоящий момент, когда они запускают сценарии автоматизации, они должны останавливаться и входить в RDP. Я пытаюсь автоматизировать это, говоря им, чтобы предоставить список учетных данных, и я сделаю все остальное. все, что им нужно сделать, это вызвать что-то вроде 'myclass.loginNextUser()'. – eoinzy

1

Вы можете хранить учетные данные RDP с помощью инструмента cmdkey

cmdkey.exe /generic:servername /user:username /pass:pass 

После запуска этого, ваш Mstsc вызов будет иметь возможность автоматического входа в систему:

mstsc.exe /v:servername