Aktionen

Batch RDP Verbindung starten mit Benutzername und Passwort

Aus znilwiki

RDP-Verbindungen werden unter Windows seit eh und je über das Programm mstsc.exe gestartet.
Nun war ich bei einem Kunden gezwungen mich nacheinander an 53 Terminalservern anzumnelden ... um 53 mal das gleiche Programm zustarten usw.

Per dsquery.exe computer und der Angabe der Start-OU als Distinguished Name habe ich schnell eine Liste aller Server unterhalb dieser OU bekommen.

In Notepad++.exe habe ich das schnell auf die Rechnernamen reduziert, nun wollte ich mir eine Batch bauen die sich nacheinander an jeden Terminalserver anmeldet.

Der mstsc.exe kann man aber keinen Benutzernamen oder Passwort übergeben ... also was tun?


Lösung (Funktioniert ab Windows Vista / Windows Server 2008):
Wir nutzen folgenden Befehl:

cmdkey /generic:TERMSRV/TESTSERVER /user:"ZNIL\USER13" /pass:"test1234"

Damit hinterlegen wir die Anmeldeinformationen für eine Terminalserververbindung an dem Server TESTSERVER für den Benutzer ZNIL\USER3 mit dem Passwort test1234
Nun können wir mit

mstsc /v:TESTSERVER

die Verbindung starten und werden direkt verbunden (sofern der Terminalserver das Speichern von Passwörtern erlaubt).
Damit unsere Batch-Datei ggf. auf das Beenden der Terminalsitzung wartet können wir den Befehl start.exe nutzen:

start /wait mstsc /v:TESTSERVER


Im Anschlüss können wir mittels

cmdkey /delete:TERMSRV/TESTSERVER

die gespeicherten Anmeldedaten wieder löschen.


Das ganze habe ich mir für einen anderen Kunden als Batch-Kommandozeilen-Tool gebaut:

connect.cmd
@echo off
cmdkey /generic:"%1" /user:"ZNIL\USER13" /pass:"test1234"
mstsc /v:%1
cmdkey /delete:"%1"

speichern und mit

connect.cmd <Servername>

aufrufen.
War eine kleine Vereinfachung da ich dort in einer Citrix -> RDP -> RDP -> RDP Kette durchhangeln musste um am Ende mich auf ein paar duzend verschiedener Server anzumelden - mit einem Passwort was schwer zu merken und zu tippen war. Die Batch temporär erstellt und schon war es einfacher.



hh2014@online.de

24 Monaten zuvor
Punktzahl 0++

Moin, ich bin auf der Suche nach einer Möglichkeit, eine RDP-Verbindung zu starten, ohne die Anmeldedaten des Clients zu verwenden. Also habe ich zunächst 'cmdkey /generic:TERMSRV/TESTSERVER /user:" "' ausgeführt und dann mist 'mstsc /v:TESTSERVER' die Verbindung gestartet. Hat einwandfrei funktioniert. Damit das generell klappt, dachte ich mir, ich packe das in eine Batchdatei. Er führt zwar die Befehle aus, aber greift warum auch immer trotzdem auf die Anmeldeinformationen des Clients zurück. Woran kann das liegen?

Schon mal vielen Dank und Grüsse, Dieter

BLinz

24 Monaten zuvor
Punktzahl 0++
Weil er die Anmeldedaten im Profil des gerade angemeldeten Benutzer (=der die Batch ausführt) speichert
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung