Remotedesktop steuern?

  • Hallo zusammen

    Ich bin erst vor kurzem auf AutoIt gestoßen, lese seit dem regelmäßig in diesem und dem engl. Forum mit und habe daher schon einige Skripte schreiben können. Trotzdem merke ich immer wieder, dass mir die Routine beim skripten noch fehlt. Daher dieser erste Thread von mir zu generellen Eigenschaften/Funktionen von AutoIt:

    Die Situation:
    Ich habe immer wieder aufwendige Rechnungen mit großen Datenmengen durchzuführen. Um meinen Desktop PC nicht zu blockieren, lasse ich eine VM für mich arbeiten, die ich per Remotedesktopverbindung (Windows) bediene.

    Die Frage:
    Kann ich mittels AutoIt-Skript auf den Remotedesktop zugreifen, dort die Eingabaufforderung starten und einen DOS-Befehl ausführen lassen bzw. senden? Welche Möglichkeiten bietet AutoIt bzw. welche Befehle würdet ihr mir empfehlen?

    Danke für eure Unterstützung,
    stevie

    Einmal editiert, zuletzt von stevie (1. Februar 2013 um 11:11)

  • Ich frag mich gerade wieso du das AutoIt Skript nich gleich auf der VM laufen lässt? Dann wäre das alles ziemlich leicht mit

    [autoit]

    ShellExecute

    [/autoit]

    Ansonsten würde mir spontan nur

    [autoit]


    ControlSend
    ControlClick

    [/autoit]

    einfallen.

    MfG

  • Hi Milla, danke für die schnelle Antwort.

    Ich stelle auf meinem Desktop PC mittels AutoIt ein Datenpaket zusammen, lege es auf einem Netzlaufwerk ab und muss dann per Remotedesktop auf die VM zugreifen und dort im DOS-Fenster die Rechnung starten.
    Meine Überlegung war, wenn ich ohnehin AutoIt benutze, um mein Datenpaket zu erstellen, kann ich dann diesen letzten Schritt (= auf VM den DOS-Befehl senden) nicht auch von AutoIt durchführen lassen?

  • Ich würde trotzdem 2 Skripte nehmen:
    1 auf deinem Desktop - Rechner eben um deine Daten zu sammeln und zu speichern und
    ein 2. das auf deiner VM läuft, prüft ob eine neue Datei auf dem Netzlaufwerk vorhanden ist und wenn ja die Rechnungen durchführt und die Datei anschließend löscht oder mit einem Timestamp umbenennt.

    Ich gehe hier davon aus, dass in der Datei auf dem Netzlaufwerk Daten enthält anhand derer du Berechnungen ausführen und irgendwo Ergebnisse speichern musst (welche man auch in einer neuen Datei auf das Netzlaufwerk zurück speichern könnte).

    MfG

  • Da gibts einige Möglichkeiten:
    - Server und Client: Einen TCP oder UDP Server auf der VM erstellen den man per Client vom PC aus steuern kann.
    - Auf der Vm ein Script erstellen das ständig prüft ob ein neues Datenpaket vorhanden ist, wenn ja dann Befehl ausführen.

    Lösungen ohne autoit:
    -telnet bzw ssh

    Gibt aber noch zig andere Möglichkeiten^^

  • Milla, deine Annahmen sind korrekt.

    Euer Vorschlag führt mich allerdings zur Frage: Wie kann ich mittels AutoIt überprüfen, ob neuen Daten/Dateien auf dem Netzlaufwerk vorhanden sind?

  • Einfach die Datei immer unter gleichem Namen speichern. (z.B.: Daten.txt)
    und dann eben

    [autoit]

    If FileExists("H:\Daten.txt") Then
    ;~ Berechnung und umbenennen/löschen
    EndIf

    [/autoit]

    Angenommen dein Netzlaufwerk hat den Laufwerksbuchstaben H.

    2 Mal editiert, zuletzt von Milla (20. Oktober 2010 um 11:25)

  • So einfach??? ?(
    Schande über mich! Wäre nie auf die Idee gekommen, dass solch ein Skript langfristig läuft, bis etwas passiert. Hab FileExists-Abfragen immer nur zur kurzfristigen Abfrage verwendet.
    Herzlichen Dank!

  • Naja du musst es eben langfristig zum laufen bringen :).

    Entweder eben ganz einfach mit einer Schleife oder auch mit

    [autoit]

    AdlibRegister

    [/autoit]

    und die Sleeps nicht vergessen sonst ist deine VM allein von deinem Skript am Ende ;).

    MfG

  • HI Stevie!

    Also wenn du "nur" ein Dos script auf einem anderen Rechener ausführen willst, dann würde ich gar nicht AutoIT verwenden, sondern die PSTOOLS nutzen.
    (psexec.exe) Da musst du nichts mehr programieren. PSTOOLS
    Beispiel

    Code
    psexec.exe \\REMOTERECHNER -i -s -e c:\dosbefehle.cmd

    If not :?: then ?( else :thumbup:

  • Der Dos-Befehl ist ja nur ein Teil das Skript muss ja auch prüfen ob neue Daten da sind und diese dann auslesen und verarbeiten

  • Meine Antwort bezog sich auf Stevies Frage.

    Die Frage:
    Kann ich mittels AutoIt-Skript auf den Remotedesktop zugreifen, dort die Eingabaufforderung starten und einen DOS-Befehl ausführen lassen bzw. senden? Welche Möglichkeiten bietet AutoIt bzw. welche Befehle würdet ihr mir empfehlen?

    If not :?: then ?( else :thumbup:

  • Also wenn du "nur" ein Dos script auf einem anderen Rechener ausführen willst, dann würde ich gar nicht AutoIT verwenden, sondern die PSTOOLS nutzen.

    Hi Concara
    Danke für die Anregung. Muss noch mal in mich gehen, wie ich es nun im Endeffekt umsetze. Aber gut zu wissen, dass es solche Tools gibt ;)

  • ich frage mich gerade, was ist wenn remote auf dem zielrechner ausgeschaltet ist. eine xp maschine ohne das remote aktiv ist bringt nichts. weiss jemand wie ich es anschalten kann? zum beispiel eine datei, die remote einschalet. diese datei muss der user, der remote unterstüzung braucht herunter laden und einmalig starten. danach kann man dann ja als admin remote arbeiten. kenne das problem aus der vergangenheit. nicht selten wurden 300 Kilometer gefahren, weil am wochenende keine admin's und techniker im dienst waren. und von zuhause konnten sie nur per remotezugriff helfen, aber einige verstanden nicht was die admins wollten, wenn man ihnen erklärt, wie man remote wieder frei gibt. irgendwann wurde dann eine software gekauft, die so aufgebaut war wie teamspeak. aber solche software in autoit, das wäre sicherlich machbar und für einige sicherlich eine große hilfe.

    so, soll gleich ins bett. ruhiges wochenende euch allen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Alina
    Dan ises halt aus :P

    Aber laufen die dienste dafür nicht standartmäßig schon unter XP ?

    Es muss ja eigendlich nur ein user angegeben werden und der muss halt ein PW haben aber sonst?

    hab ich was übersehen?

    Nochwas.....
    Wenn du das zum spaß programmierst isses okey.
    Aber wirklich nutzen würde ich es nicht besonders wenn du wirklich wartungen damit durchführen willst

    MFG Matthias