Programm auf LAN-Clients zentral gesteuert starten

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Adde.

    Programm auf LAN-Clients zentral gesteuert starten

    Hi,
    ich habe innerhalb der letzten Tage (auch mit Hilfe dieses Forums) ein programm in Visual Studio Express 2013 geschrieben. Dieses Programm hat die Funktion, dass es auf dem Rechner, auf welchem es ausgeführt wird, alle Outlook-Kontakte in eine Excel-Tabelle
    schreibt und diese unter einem dem Programm von mir vorgegebenen Pfad speichert (Hierfür muss man auf der Benutzer Oberfläche die Option Export auswählen). Wählt man die Option Import aus, so liest das Programm aus jeder beliebigen Excel-Tabelle, welche
    unter dem vorher genannten Speicherpfad liegt, aus, filtert die Kontakte heraus, welche in dem Kontaktordner bereits vorhanden sind und überträgt nur die, welche es noch nicht gibt.(Hierfür sollte man wissen, dass Outlook Kontakte immer lokal auf dem Rechner
    speichert und man dies nicht umstellen kann). Daher habe ich das Programm geschrieben, damit man eine Excel-Kontakt-Liste auf jedem Rechner erstellen und auf jedem Rechner (welche innerhalb meiner Praxis über einen Server per LAN verbunden sind) ausöesen
    kann. Nun möchte ich jedoch ein Programm schreiben, welches auf dem Server liegt und, sobald es ausgeführt wird (dies würde ich über eine Zeitschaltung nachts zusammen mit der täglichen Datensicherung laufen lassen) auf allen Rechnern, auf denen das Programm zum auslesen der Kontakte liegt, eben dieses ausführt, die Tabellen, bzw Daten vergleicht und in eine Tabelle umschreibt, sodass eine Art "Master-Vorlage" mit allen gespeicherten Kontakten entsteht. (mir würde bereits Hilfe zum Code zum Ausführen des Programms auf den anderen Rechnern sehr helfen). Ferner ist es mein Ziel, dass diese Master-Vorlage an die Rechner geschickt wird, mein anderes Auslese-Programm diese ausliest und für alle bisher nicht gespeicherten Kontakte einen neuen Kontakt erstellt uws.

    Meine erste Frage : Ist etwas derartiges überhaupt möglich ?
    2. Bräuchte ich erstmal Hilfe, eine Verbindung zwischen zwei Rechnern herzustellen (in Visual Basic) um das Auslese-Programm auf allen rechnern auszuführen und pro Rechner eine Kontakt-Liste zu haben.
    3. Der andere Rest hat noch Zeit (bin damit nicht in Eile, da ich es für mich selbst mache).

    Wie gesagt, für eine Hilfestellung zur Verbindungsherstellung und Befehlsübertragung wäre ich bereits sehr dankbar :)

    Vielen Dank schonmal im Voraus

    Andi


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Adde“ ()

    Für solche Admin-Aufgaben würde ich nie und nimmer eine selbstgeschriebene Kommunikation verwenden.
    Da gibt's genügend andere Möglichkeiten.
    PowerShell technet.microsoft.com/en-us/library/dd819505.aspx
    PsExec technet.microsoft.com/en-us/sysinternals/bb897553.aspx

    Theoretisch kannst du sogar das gute alte AT-Command remote anwenden.
    robvanderwoude.com/ntat.php
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Gäbe es auch eine Möglichkeit, bei welcher ich Nicht daran gebunden wäre, dass ich ein Programms auf jedem Rechner laufen lassen muss, um ihm Befehle zu senden?
    Mein Problem ist, dass ich ja dieses Programms vor der Sicherung immer manuell starten müsste :/

    Aber danke für eure schnellen Antworten

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Adde“ ()

    So, ich habe mir mittlerweile eine Programm-Abfolge ausgedacht mit der meine Idee realisierbar wäre, jedoch stehe ich jetzt vor dem Problem, dass, wenn ich die Batch-Datei, welche mit psexec Commands arbeitet und somit ein Programm auf dem Zeilrechner startet, mit Visual Basic ausführen will, bekomme ich von der Konsolenanwendung die Fehlermeldung:

    Quellcode

    1. C:\Users\Andreas\Documents\Visual Studio 2013\Projects\Contacts-Auswahl\Contacts-Auswahl\bin\Debug>psexec -i -s -d \\andilap c:\kontakte\Contacts-Export.exe
    2. Der Befehl "psexec" ist entweder falsch geschrieben oder konnte nicht gefunden werden.


    Wenn ich jedoch diesen Befehl in die Konsole eingebe funktioniert er und ebenso wenn die Batch manuell starte...

    Weiß jemand woran das liegen könnte ?
    Lösung:
    Da ich ein 64Bit System habe, PsExec jedoch eine 32Bit-Anwendung ist muss man alle PsExec-Dateien lediglich in den C:\Windows\SysWOW64 Ordner kopieren. Hierbei ist es egal ob sie noch weiterhin im System32-Ordner existieren!

    Fazit: Bei einem 64Bit Betriebssystem PsExec einfach in SysWOW64 kopieren und fertig :)