vb6 - 如何使用vb6通过客户端在服务器上远程运行exe

标签 vb6 cmd exe remote-access

我正在使用下面的代码在 cmd 中执行我的命令。这实际上是为在我的服务器上运行一个 exe 而制作的。

Private Sub Command1_Click()
    Dim FN As Integer
    FN = FreeFile
    'DOS COMMANDS
    ServerName = "\\mydbserv"
    ExePath = """d:\myfolder\my.exe"""
    UserName = "myserver\myuser"
    Password = "mypass"
    MyCommand = "psexec " & ServerName & " -u " & UserName & " -p " & Password & " -i " & ExePath
    'Open Bat file
    Open "C:\Mybatc.bat" For Output As #FN
        Print #FN, "cd c:\Users\myuser"
        Print #FN, MyCommand
        Print #FN, "Exit"
    Close #FN
    'Activate
    result = Shell("C:\Mybatc.bat", vbHide)
    End
End Sub

一切都很好,直到我看到进程完成后 cmd 没有关闭。 更糟糕的是我试图远程运行的 exe 也没有停止。当我检查 cpu 使用情况时,它总是显示“00”甚至没有启动。它显示为永远工作但实际上从未工作过。 所以我的问题是:

  1. 为什么我不能远程运行这个 exe 文件? (或者为什么它只是显示像运行一样)
  2. 在服务器上完成此 exe 文件后,如何远程运行和关闭?
  3. 如何在我的电脑上完成后关闭窗口和进程?

最佳答案

这个怎么样?

  1. 在服务器上安装 Windbg。
  2. 配置 windbg 自动附加到您的 exe,当您的 exe 准备好运行时。 http://ask.brothersoft.com/image-file-execution-options-debugger-83827.html
  3. 运行你的脚本
  4. 在您的 exe 启动后,windbg 将附加到它。
  5. 在windbg命令中输入'g',让你的exe运行。
  6. 等到你认为它应该完成
  7. ctrl-break 让进程挂起
  8. 在 windbg 命令中输入 '~*kb',查看每个线程中发生了什么, 找出他们为什么要等,他们在等什么?

关于vb6 - 如何使用vb6通过客户端在服务器上远程运行exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515652/

相关文章:

vb6 - Textwidth 无法以毫米为单位正确显示 vb6

Windows命令行: how to loop over a list?

c++ - 如何生成包含可通过脚本轻松修改的数据的 exe

javascript - 带有 javascript 代码的 Exe 程序

arrays - 如何将项目添加到 VB6 2D 数组

excel - vba中dim和set有什么区别

com - 如何在 WinDbg 中查看 VB6 控件级变量?

windows - 批处理脚本帮助清除历史记录不是 cls 的问题

windows - 拆分路径并在批处理脚本中获取最后一个文件夹名称

c# - 在调试中的 ASP.NET MVC 应用程序中使用时 dll 中 exe 的路径