![在 Windows Server 上远程运行脚本](https://linux22.com/image/1419126/%E5%9C%A8%20Windows%20Server%20%E4%B8%8A%E8%BF%9C%E7%A8%8B%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC.png)
我的情况是这样的。我想通过按下我网站上的按钮(管理控制页面)来运行一个脚本。我的网络服务器(Linux)和专用机箱(Windows 2012)位于不同的位置。
例如:
Web 服务器页面 | Ded 服务器
|
'重启应用程序' ------>------>------|-->->Script_To_Restart_App
Windows 2012 服务器未运行 Windows Web 服务器服务 IIS。我宁愿不运行它,因为它不会运行网页。
无论如何,这可能吗?
谢谢你,
克莱顿
答案1
您的建议并不简单。有以下几种方法:
让运行在 Windows 机器上的应用程序监听要求其重新启动的消息。当收到这样的消息时,重新启动。有几种方法可以监听这样的消息,您可以根据应用程序的构建方式选择最简单的方法。例如,开始监听已知端口,当收到“重新启动”消息时执行此操作。这显然需要更改应用程序的能力。一种变体是构建另一个应用程序/服务,它只监听重新启动消息并停止/启动原始应用程序。如果您无法更改原始应用程序或不想更改,则可能需要这样做。
使用 Windows 中的某些工具来重新启动应用程序。有内置方法(例如 WMI)来重新启动服务,并可能启动和停止进程。这更难,因为你想从非 Windows 框中执行此操作。有一个很棒的工具“psexec”http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspx这使得远程执行此类操作变得非常容易,并且有一个 Linux 版本http://steronius.blogspot.co.uk/2013/05/psexec-via-linux.html所以这可能会很好。这不需要编程,但需要更多地处理配置和身份验证……也许,或者它可能立即起作用。您可以从 php 脚本中调用 psexec,并使用必要的命令行参数使其重新启动您的 Windows 应用程序。
答案2
看看 winexe。它是 Linux 的一个命令行工具,类似于 Windows 工具 psexec。Winexe 可以从 Linux 远程执行 Windows 系统上的命令。适用于几个常见 Linux 发行版的 winexe 软件包可从openSUSE winexe 软件包网站。