2.4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von strauss Experte (4k Punkte)
Hi an alle

Ich glaub ich steh gerade ein wenig auf dem Schlauch !?

Ich möchte den Zugriff zu einem Rechner im Internet
etwas "automatisieren" (es sitzen ja nicht überall Spezis)

Folgende Anleitung hab ich schon abgearbeitet:
Link

Der Zugriff mit Remotedesktop klappt auch über die "Tunnelung"

Ich möchte nun aber in die Batchdatei von "plink" (siehe Anleitung im Link) gleichzietig auch noch das Programm "mstsc.exe" (Remotedesktopverbindung) starten.

Ich hab das Script um folgende Zeile erweitert:
C:\windows\system32\mstsc.exe


Die gesamte Batchdatei sieht dann so aus:
plink -ssh -2 -N -L 127.0.0.2:3390:127.0.0.1:3389 -pw test Test@192.168.2.7
C:\windows\system32\mstsc.exe
(ist jetzt zu Testzwecken auf einem lokalem PC eingerichtet)

Leider starte aber das Programm nicht !

Kann ich den Aufruf von mstsc überhaupt mit in diese Script einbauen ??

Mfg Micha

9 Antworten

0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
Ich vermute, dass das Programm (vergeblich) gestartet wird, wenn die erste Zeile "abgearbeitet", also der Tunnel wieder "geschlossen" wird. Mach mal hinten ein PAUSE rein - dann siehts du, ob das stimmt.
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Dank erstmal für die Antwort.

"Pause" hat nichts bewirkt.

Wie kann ich das ganze dann noch anstellen ?
Ich möchte doch nur, das sich das Programm öffnet, sobald die SSH-Verbindung hergstellt ist.

Mfg Micha
0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
PAUSE (am Ende) sollte nicht bewirken, dass es funktioniert, sondern dir Gelegenheit geben, an Hand der Meldungen festzustellen, ob - wie ich vermute - die zweite Zeile erst abgearbeitet wird, wenn das in der ersten aufgerufene Programm beendet ist.
Ich wüsste nicht, was man dagegen machen könnte. Selbst wenn man zwei getrennte Batch-Dateien (aus einer dritten) per CALL aufruft, laufen nicht beide direkt nacheinander ab.
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Mittlerweile hab ich mir überlegt die beiden Befehle mit einer neuen Batchdatei zu starten.
plink.bat
Pause
c:\windows\system32\mstsc.exe

Leider bleibt das ganze aber auch nach dem plink Befehl stehen. Im Normalfall sollte doch auch die mstsc aufgerufen werden ?!

Mfg Micha
0 Punkte
Beantwortet von
Im Normalfall sollte doch auch die mstsc aufgerufen werden ?!
nicht unbedingt. Nur wenn die plink.bat abgeschlossen wird. Ansonsten wartet deine batch solange, bis eben plink.bat geschlossen wird und mach dann mit den nächsten Befehlen weiter

probiers mal mit

start plink.bat


das sollte die plink.bat starten und in der ersten bat weitermachen
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Jetzt kommen wir der Sache schon sehr nahe:

Die SSH-Verbindung wird aufgebaut und RDP startet.
Die Funktionalität ist jetzt schon mal gegeben.

Gibt es noch die Möglichkeit die Befehlsfenster auszublenden ! (ECHO)

Mfg Micha
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Ich hab die Batch noch etwas erweitert, das RDP gleich mit Server und Port aufgerufen wird:
start plink.bat
c:\windows\system32\mstsc.exe /v:120.0.0.2:3390


Wahrscheinlich kommt der Verbindungsversuch von RDP zu schnell, so das keine Verbindung zu stande kommt.
Wenn ich der Server und den Prot aus der Batch weglasse, dann funzt die Verbindung.
Kann man zwischen
start plink.bat
und
c:\windows\system32\mstsc.exe /v:120.0.0.2:3390 noch irgendwie eine Wartezeit einfügen ? Vieleicht den PC einmal anpingen ?

Mfg Micha
0 Punkte
Beantwortet von strauss Experte (4k Punkte)
Hi

Alles in Butter.
Ich hatte nur die falsche IP in der Batch stehen.

Jetzt läuft alles wie geplant und mit dem Befehlsfenstern hat sich auch so weit erledigt, da man die nicht mehr sieht, da RDP im Vollbildmodus startet.
Nach dem Beenden der Sitzung ist dann nur noch die SSH Sitzung offen, die man dann einfach über das Kreuz beenden kann.

Thema erledigt. Danke

Mfg Micha
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Selbstendende Pause liesse sich z.B. mittels eines kleinen Workarounds via PING erledigen. Fuege vor dem zu verzoegernden Befehl doch einmal folgende Zeile ein:
ping -n 10 localhost >null

Ist zwar nicht sekundengenau, aber so um und bei 10sek Pause sollte das bringen, und auch im Anschluss mit dem Ablauf des Programms weitermachen.

Cu
TheBlackBird ®
...