Если вы хотите следовать PSexec-подобному маршруту, вот пример (с C ++) источника, с именем XCmd .
Или вы можете загрузить обновленный проект XCmd (теперь он называется 'The Grim Linker') из SourceForge.
По сути, он извлекает службу во время выполнения, копирует ее в удаленную систему, устанавливает как службу, а затем подключается к ней (через именованные каналы).
Другой вариант - использовать встроенные возможности WMI для удаленного выполнения. Вот пример в VBScript, который вы можете конвертировать в Delphi. В приведенном ниже примере выполняется блокнот на удаленной системе.
' 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