Ich möchte ein Skript erstellen, das über einen SSH-Server gestartet wird, um einen Windows-Dienst zu starten / stoppen. Der SSH-Benutzer ist Teil der Administratorgruppe. Beim Ausführen des Skripts erhalte ich jedoch die Fehlermeldung, dass der Dienst nicht gestartet werden kann.
Wie kann ich sicherstellen, dass mein Skript mit Administratorrechten gestartet wird? Ich habe ähnliche Skripte in Linux mit gemacht sudo service myservice start/stop
. Ich suche ein Äquivalent in Windows, falls es so etwas gibt.
Meine ps1-Shell sieht ungefähr so aus:
function start() { Start-Service MyService // verify service started here }
function stop() { Stop-Service MyService // verify service stopped }
function status() { // Return Running/Stopped for MyService }
windows
ssh
batch
powershell
Byob
quelle
quelle
Antworten:
Ich würde das SSH-Skript ein Powershell-Skript starten lassen. Powershell ist in der Lage, sich selbst zu erheben, Dienste zu stoppen und ihren Status zu überprüfen.
Irgendein Pseudocode:
Wobei powershell.bat über den gesamten erforderlichen Code verfügt, um mit den Diensten das zu tun, was Sie wollen.
quelle
Ich weiß, dass Sie bash / ssh verwenden möchten, aber meiner Erfahrung nach ist die einfachste Möglichkeit, Windows von einer Linux-Box aus zu verwalten, die Verwendung von Python und WMI
http://timgolden.me.uk/python/wmi/index.html
http://timgolden.me.uk/python/wmi/cookbook.html
http://timgolden.me.uk/python/wmi/tutorial.html
Dies ist der einfachste Weg, den ich kenne, wenn Sie kein BASH / SSH benötigen. Wenn Sie SSH benötigen, wird dies komplizierter, da Python und WMI jetzt auf jedem Computer installiert sein müssen, auf dem Sie dies ausführen möchten Möglicherweise möchten Sie eine Sprache verwenden, die bereits auf jedem Computer installiert ist (VBScript, Powershell usw.). Diese Methode setzt auch voraus, dass Sie den WMI-Dienst auf der Windows-Box aktiviert haben, was einige Administratoren nicht gerne tun.
Linux-Boxen eignen sich hervorragend für die Verwaltung gemischter Umgebungen. Stellen Sie jedoch sicher, dass Sie das richtige Werkzeug für den Job verwenden. Ein Taschenmesser fällt einen Baum, aber eine Kettensäge wurde gebaut, um den Baum zu fällen.
quelle
start =
net rpc service start SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
stop =
net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
status =
net rpc service status SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
Wenn Ihr Passwort Sonderzeichen enthält, schließen Sie diese mit einem Backslash ab
\
.quelle