在 Windows Server 上遠端執行腳本

在 Windows Server 上遠端執行腳本

我的情況是這樣的。我想透過按下我的網站(管理控制頁面)上的按鈕來執行腳本。我的網頁伺服器(linux)和專用盒子(windows 2012)位於不同的位置。


例如:

網頁伺服器頁面 | Ded伺服器
                                            |
'重新啟動應用程式' ------>----->---|-->->Script_To_Restart_App



Windows 2012 伺服器未執行 Windows Webserver 服務 IIS。我寧願它不運行它,因為它不會運行網頁。

無論如何,這有可能嗎?

謝謝你,

克萊頓

答案1

你所建議的並不是微不足道的。有幾種方法:

  1. 讓您的應用程式在 Windows 盒子上執行,偵聽指示其重新啟動的訊息。當收到這樣的訊息時,重新啟動。您可以透過多種方式收聽此類訊息,您可以根據您建立應用程式的方式選擇最簡單的一種。例如,開始偵聽已知端口,當您收到“重新啟動”訊息時,請執行此操作。顯然,這需要能夠更改應用程式。一個變體是建立另一個應用程式/服務,僅偵聽重新啟動訊息並停止/啟動原始應用程式。如果您無法更改或不願意更改原始應用程序,則可能需要這樣做。

  2. 使用 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 套件網站。

相關內容