Frage

Ich brauche eine Anwendung oder einen Dienst auf einem Remote-Computer ausgeführt werden. Ich habe Erfolg mit psexec von SysInternals hatte, aber ich bin zu untersuchen und würde gerne Alternativen Compre. Letztendlich wird der Befehl aus einer Delphi-Anwendung ausgeführt werden. Danke, Pieter.

War es hilfreich?

Lösung

Wenn Sie die psexec ähnliche Route folgen wollen, hier ist ein Beispiel (mit C ++) Quelle, genannt xcmd .

Sie können auch das aktualisierte xcmd Projekt herunterladen (jetzt genannt 'The Grim Linkers') von Source.

Im Wesentlichen extrahiert er einen Dienst zur Laufzeit, kopiert es in dem Remote-System, installiert es als Dienst, verbindet sich dann mit ihm (über Named Pipes).

Die andere Option ist WMI integrierte Remote-Ausführung Fähigkeiten zu nutzen. Hier ist ein Beispiel in VBScript, die Sie Delphi konvertieren könnte. Das folgende Beispiel führt Notizblock auf dem Remote-System.

' This script provides a function for executing a command on a remote computer
' This uses WMI and requires that you have administrative righs on the remote machine
'

Dim strComputer, strCommandLineToRun

'change the period to an IP Address or computer name
strComputer = "."   'example: strComputer = "192.168.1.105"

'this is the path to the file on the computer whose name/IP address is stored in the strComputer variable
strCommandLineToRun = "c:\windows\system32\calc.exe"


' This calls the function to run the process on a remote computer
RemoteExecute strComputer,"","",strCommandLineToRun


Function RemoteExecute(strServer, strUser, strPassword, CmdLine)
    Const Impersonate = 3

    RemoteExecute = -1

    Set Locator = CreateObject("WbemScripting.SWbemLocator")
    Set Service = Locator.ConnectServer(strServer, "root\cimv2", strUser, strPassword)

    Service.Security_.ImpersonationLevel = Impersonate 
    Set Process = Service.Get("Win32_Process")

    result = Process.Create(CmdLine, , , ProcessId)

    If (result <> 0) Then
        WScript.Echo "Creating Remote Process Failed: " & result
        Wscript.Quit
    End If

    RemoteExecute = ProcessId
End Function

Andere Tipps

ssh ist eine gute Wahl, wenn Sie empfindliche etwas Streaming sein wird. Es gibt sogar ein paar FOSS sshd-Server für Windows, die auf Cygwin verlassen Sie sich nicht.

Die andere Möglichkeit, die Fenster AT-Befehl der Zeitplan Aufgaben über die Windows-Scheduler zu verwenden sei. Sie können Arbeitsplätze remote mit dem Befehl einreichen, solange Sie Administratorzugriff und der Zeitplan-Dienst ausgeführt wird auf der anderen Maschine. Um die Syntax zu prüfen, öffnen Sie einfach ein CMD-Fenster und geben Sie AT /? .

zum Beispiel etwas auf der Maschine laufen zu lassen um 4 Uhr morgens namens „Server“, geben Sie einfach den Befehl

AT \\server 4:00 "c:\something.bat"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top