代码之家  ›  专栏  ›  技术社区  ›  funkymushroom

如何在远程服务器上运行命令行程序

  •  1
  • funkymushroom  · 技术社区  · 15 年前

    我已经编写了一个在命令行上运行的工具。
    我可以在我的机器上的命令行上测试它,它工作得很好。
    然后我远程进入目标服务器机器并在那里的命令行上运行它,它仍然可以工作。

    然而 它是一个监控工具 ).
    我不能让我的远程会话打开太久,因为其他人需要使用它,当我关闭远程会话时,命令行工具就结束了。

    我不知道如何编写一个windows服务,也不想这样做,但实际上我需要这个功能。我需要用一个windows服务来包装我的命令行工具,当我断开连接时,这个服务可以在目标机器上继续运行。

    有人能提供一些关于如何做到这一点的见解/策略吗?

    编辑:
    以下两个帖子都很有帮助。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Hans Olsson    15 年前

    如果是Windows Server 2003或更早版本,则可以使用Srvany.exe将任何应用程序作为服务运行。看到了吗 here 详情。

    如果是windowsserver2008,SrvAny不受官方支持,但是您可以通过从Win2003资源工具包或更早版本中复制它,然后以某种方式将它与Thomas answer中的指令结合起来,从而使它正常工作。

    只需在visualstudio中创建一个Windows服务项目。在OnStart中,创建一个运行代码的线程。在OnStop中,您使用一个标志来停止服务。那你以后可以做得更好。

        2
  •  2
  •   Thomas    15 年前
        3
  •  1
  •   sakra    15 年前

    PsExec 要以分离模式在远程机器上启动监视工具,即:

    PsExec.exe \\remote_machine -d C:\...\monitoring_tool.exe
    

    PsExec.exe在远程计算机上启动monitoring\u tool.exe,然后终止自身。它不会等待监视\u tool.exe终止。

    推荐文章