Führen Sie ein Skript remote auf einem Windows-Server aus

Führen Sie ein Skript remote auf einem Windows-Server aus

Meine Situation ist folgende. Ich möchte, dass ein Skript durch Drücken einer Schaltfläche auf meiner Website (Administrator-Kontrollseite) ausgeführt wird. Mein Webserver (Linux) und meine dedizierte Box (Windows 2012) befinden sich an verschiedenen Standorten.


Beispiel:

Webserver-Seite | Ded-Server
                                            |
„App neu starten“ ------>------>---|-->->Script_To_Restart_App



Der Windows 2012-Server führt den Windows-Webserverdienst IIS nicht aus. Ich würde ihn lieber nicht ausführen, da er keine Webseite ausführen wird.

Ist das irgendwie möglich?

Danke schön,

Clayton

Antwort1

Was Sie vorschlagen, ist nicht trivial. Es gibt mehrere Ansätze:

  1. Sorgen Sie dafür, dass Ihre App auf dem Windows-Rechner auf Nachrichten wartet, die sie zum Neustart auffordern. Starten Sie neu, wenn eine solche Nachricht eintrifft. Es gibt mehrere Möglichkeiten, auf eine solche Nachricht zu warten, und Sie können die einfachste auswählen, je nachdem, wie Sie die App erstellt haben. Beginnen Sie beispielsweise damit, auf einem bekannten Port zu warten, und wenn Sie die Nachricht „Neustart“ erhalten, führen Sie den Neustart aus. Dies erfordert natürlich die Möglichkeit, die App zu ändern. Eine Variante davon besteht darin, eine andere App/einen anderen Dienst zu erstellen, der nur auf Neustartnachrichten wartet und die ursprüngliche App stoppt/startet. Dies kann wünschenswert sein, wenn Sie Ihre ursprüngliche App nicht ändern können oder dies nicht möchten.

  2. Verwenden Sie etwas in Windows, um die App neu zu starten. Es gibt integrierte Möglichkeiten (z. B. WMI), um Dienste neu zu starten und wahrscheinlich Prozesse zu starten und zu stoppen. Dies ist schwieriger, weil Sie es von einer Nicht-Windows-Box aus tun möchten. Es gibt ein großartiges Tool „psexec“.http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspxDas macht es wirklich einfach, solche Dinge aus der Ferne zu tun, und es gibt eine Linux-Versionhttp://steronius.blogspot.co.uk/2013/05/psexec-via-linux.htmlalso könnte das gut klappen. Dies erfordert keine Programmierung, sondern mehr Herumprobieren mit Konfiguration und Authentifizierung ... vielleicht, oder es könnte auch sofort funktionieren. Sie würden psexec von Ihrem PHP-Skript mit den erforderlichen Befehlszeilenargumenten aufrufen, damit es Ihre Windows-App neu startet.

Antwort2

Schauen Sie sich winexe an. Es ist ein Kommandozeilentool für Linux, das dem Windows-Tool psexec ähnelt. Winexe führt Befehle auf Windows-Systemen aus Linux aus. Pakete für winexe für mehrere gängige Linux-Distributionen sind verfügbar aufopenSUSE Winexe-PaketWebseite.

verwandte Informationen