menfan1 发表于 2010-10-14 20:27:09

【已解决】远程执行程序

本帖最后由 menfan1 于 2010-10-16 19:45 编辑

远程执行程序应该除了WMI就是C/S结构,WMI要求比较多(比如开启WMI服务,不允许空密码,跨系统处理问题等等),而且经常有莫名其妙的报错;C/S结构没有相应版块,不好找相关实例,期待高人提供一个学习一下哈。。

menfan1 发表于 2010-10-14 20:28:27

远程进程管理工具 v2.1版--http://www.autoitx.com/forum.php?mod=viewthread&tid=2708&extra=page%3D2,WMI实现的,但是没有开源

menfan1 发表于 2010-10-14 20:48:14

需要TCP协议,稳定可靠哈

menfan1 发表于 2010-10-15 10:05:45

服务端开端口并做到系统性能监控,客户端发送指令到服务端并执行程序,返回结果。

menfan1 发表于 2010-10-16 10:50:19

自己顶一下哈。。

C.L 发表于 2010-10-16 12:24:55

本帖最后由 C.L 于 2010-10-16 12:26 编辑

没有搞清楚楼主的意思,如果是想要人提供一个如2#这样的功能的代码,我想没有多少人有这个空,除非sanhen大神出来给你提供源码。

要实现远程执行程序不难,传送特定的字符串,接收端收到特定的字符串,按字符串格式用Run()来执行程序,如:

$command 为发送端发过来的字符串

if $command == "notepad" then
run ("notepad.exe")
endif

menfan1 发表于 2010-10-16 14:15:01

回复 6# C.L

首先,wmi实现不稳定,不需要;其次,传输加密字符串没问题,就是服务端要开端口收信息并同时做到系统性能监控没有实现,只能做到其一,希望能有解决办法

menfan1 发表于 2010-10-16 14:30:48

最好能有个完整的实例哈

menfan1 发表于 2010-10-16 16:18:02

TCPStartUp()
$MainSocket = TCPListen(TCPNameToIP(@computername), 65432,100 )
If $MainSocket = -1 Then Exit
While 1
    $ConnectedSocket = TCPAccept( $MainSocket)
    If $ConnectedSocket >= 0 Then
      msgbox(0,"","connected",1)
      ExitLoop
    EndIf
Wend
While 1
    $Message=TCPRecv($ConnectedSocket,2048)
    Sleep(25)
    If $Message<>"" Then
      Switch $Message
            Case "IPAddress"
                $Info=@IPAddress1
            Case "ComputerName"
                $Info=@ComputerName
            Case "UserName"
                $Info=@UserName
            Case "LogonDomain"
                $Info=@LogonDomain            
            Case Else
                $Info="Unknown command"
      EndSwitch
      TCPSend($ConnectedSocket,$Info)
    EndIf
WEnd
--这种比较简单,需要复杂点的实例哈

menfan1 发表于 2010-10-16 20:11:53

建议版主增加一个C/S版块,学习学习。。

wsfda 发表于 2011-2-26 23:03:20

学习中...............
页: [1]
查看完整版本: 【已解决】远程执行程序