2012-04-03 3 views
1

J'essaye d'automatiser une certaine authentification où je me connecte via RDP, et je m'authentifie avec un serveur particulier, en utilisant des informations d'identification provenant d'un fichier PROPERTIES.Java - Connexion au serveur RDP sous Windows

Sur Windows, le client RDP intégré est mstsc.exe, mais il ne semble pas que vous puissiez fournir des informations de connexion en ligne de commande, comme sur Linux et Mac.

Y a-t-il une solution de contournement sur Windows, en utilisant mstsc.exe, où je peux authentifier automatiquement, sans aucune interaction de l'utilisateur?

Merci.

Répondre

1

Pourriez-vous utiliser un fichier de connexion personnalisé? Passez ensuite dans MSTSC par exemple:

mstsc customfile.RDP 

Voici ce fichier RDP ressemble, je les références enregistrées, notez le plein champ d'adresse et le champ 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> 

passez cela à l'appel mstsc.exe. Je vais essayer de voir où le mot de passe est stocké.

Je n'appellerais pas cela super sécurisé non plus. Je pense que le mot de passe est stocké crypté, ça va prendre quelques minutes avant de comprendre comment.

Qu'essayez-vous d'accomplir exactement? MSTSC ne renvoie pas de valeurs basées sur l'authentification. Donc, je ne suis pas sûr de ce que vous prévoyez de capturer.

+0

Merci pour la réponse. J'écris un logiciel pour automatiser l'authentification SPNEGO sur RDP. Je regardais le fichier .RDP, mais j'écris un logiciel qui sera utilisé par un testeur pour tester les opérations sous différentes combinaisons utilisateur/passe. Ces informations d'identification seront probablement stockées dans un fichier .PROPERTIES. Je devrais créer un fichier .RDP pour chaque utilisateur, après avoir extrait leurs informations d'identification du fichier .PROPERTIES. – eoinzy

+0

@eoinzy C'est vrai que vous devez créer un fichier à chaque fois, mais cela peut être temporaire. Autre que l'ONU, PW et l'adresse IP le contenu du fichier pourrait rester le même. Vous pouvez détruire ou écraser le fichier chaque fois qu'il est traité. Je suppose que l'utilisateur serait en contrôle de ce programme Java à chaque fois? J'essaie de comprendre l'avantage de programmer cela. Merci – kevingreen

+0

L'utilisateur va être un testeur de logiciels. À l'heure actuelle, lorsqu'ils exécutent des scripts d'automatisation, ils doivent s'arrêter et se connecter à RDP. J'essaye d'automatiser ceci en leur disant de fournir une liste de qualifications, et je ferai le reste. tout ce qu'ils auraient à faire est d'appeler quelque chose comme 'myclass.loginNextUser()'. – eoinzy

1

Vous pouvez stocker les informations d'identification de RDP en utilisant l'outil CMDKEY

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

Une fois que vous avez exécuté, votre appel mstsc sera en mesure de connexion automatique:

mstsc.exe /v:servername