Announcement

Collapse
No announcement yet.

Shutdown per COM möglich oder RPC ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Shutdown per COM möglich oder RPC ?

    Hallo Leute,

    meine Suche hier im Forum brachte noch keine Lösung ein. Darum jetzt mein Versuch hier im COM/DCOM-Forum.

    Es geht darum, daß ein Programm von einem Netzlaufwerk von mehreren Rechnern/Benutzern gestartet werden kann. Auf Knopfdruck soll man mit Hilfe einer RPC-Funktion (oder auch anders, wenn es geht) ein Kommando an alle Rechner bzw. an einen bestimmte Rechner schicken. Dieses Kommando (z.B. Shutdown) soll bewirken, daß das Programm auf dem betreffenden Rechner geschlossen wird.

    Es wäre sozusagen eine Art Fernbedienung, die ich versuche, zu implementieren. Als Idee bin ich bisher nur so weit, daß man wahrscheinlich mit einem Sink-Objekt arbeiten muß. Aber wie genau implementiere ich soetwas ?

    Sourcecode wäre gut )

    Grüsse,
    Carsten

  • #2
    Hallo,

    wenn es sich nicht um eine veraltete Windows-Version handelt und auch die Rechte für den Remote-Zugriff auf den anderen Rechner vorliegen, kann man über WMI den Prozess beenden. Unter Windows XP reicht es dazu aus, die folgende Anweisung aus dem Fenster der Eingabeaufforderung oder aus dem eigenen Programm heraus abzuschicken:

    <pre>

    WMIC.EXE /NODE:ZielrechnerName PROCESS WHERE NAME='ZuKillendeAnwendung.exe' CALL TERMINATE

    </pre>

    Über diesen Weg kann jeder beliebige Prozess abgeschossen werden, für den ersten Test eignet sich der Taschenrechner CALC.EXE am besten :-)

    Bei älteren Windows-Version muss man je nach dem Alter sowohl WMI nachinstallieren und direkt mit den WMI-Klassen hantieren (nachdem in Delphi über <i>Projekt | Typbibliothek importieren</i> die Typbibliothek <i>Microsoft WMI Scripting V 1.x Library</i> in eine .PAS-Datei importiert wurde.

    Comment


    • #3
      Hallo Andreas,

      die Lösung über WMI (Windows Management Instrumentation) hört sich ganz gut an.

      Beim Testen jedoch gibt es Probleme:
      Auf meinem Rechner (Windows NT 4.0) ist die Datei "wmic.exe" nicht vorhanden.
      Auf einem anderen Rechner (Windows 2000) ist diese Datei ebenso nicht vorhanden, obwohl es nach meinem Verständnis auf der Microsoft-Homepage (http://www.microsoft.com/downloads/details.aspx?FamilyID=afe41f46-e213-4cbf-9c5b-fbf236e0e875&DisplayLang=en) per Default vorhanden sein sollte.

      Auf dem entsprechenden "Windows 2000"-Rechner wo auch Delphi 5 installiert ist, ist jedoch die Type Library vorhanden.

      Warum kann ich jedoch das Programm WMIC.exe nicht auf dem betreffenden Rechner finden ?

      Noch eine Frage zu dem NT-Rechner:
      Wie erkenne ich, ob auf dem Rechner SP4 vorhanden ist ? Kann man dies auch über eine Delphi-Funktion überprüfen ?

      Grüsse,
      Carste

      Comment


      • #4
        Hallo,

        Microsoft liefert das Kommandozeilen-Tool für die Administratoren (WMIC.EXE) erst ab Windows XP vorinstalliert mit aus. Alle älteren Windows-Versionen müssen direkt auf WMI zugreifen (d.h. entweder über ein Script für den WSH oder aus der eigenen Delphi-Anwendung heraus). Das Hantieren mit WMIC.EXE macht die Sache nur einfacher, da die komplexen WMI-Klassen und Namespaces durch einfacher merkbare Alias-Namen ersetzt werden

        Comment


        • #5
          Ok,

          kannst Du vielleicht die Quellcode-Zeile in Delphi posten (ohne Verwendung von WMIC.exe) ?

          Viele Grüsse,
          Carste

          Comment

          Working...
          X