Automatisieren von SSH in Windows mit Ruby

Ich habe 13 Windows-Server mit Jenkins Slaves. Aus irgendeinem Grund (Windows-Updates?) Beenden die Jenkins-Slaves regelmäßig die Arbeit und der Jenkins-Slave-Dienst muss neu gestartet werden. Wenn ich manuell SSH zu den Maschinen (Cygwin SSH-Server läuft), gebe ich einfach ein:

net stop "Jenkins Slave"
net start "Jenkins Slave"

und das löst (fast) immer das problem.

Deshalb habe ich ein Ruby-Skript geschrieben, um dies zu automatisieren.

Hier ist:

#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'

USER = 'Administrator'
PASS = 'PASSWORD'
hosts = [:breckenridge, :carbondale, :crestone, :denali, :gunnison, :sneffels, "mammoth", "whitney", "snowmass", "firestone",  "avon", :grizzly, :silverton]

hosts.each {|host|
    puts "SSHing #{host} ..." 
    Net::SSH.start( HOST, USER, :password => PASS ) do |ssh|
        puts ssh.exec!('net stop "Jenkins Slave"')
        puts ssh.exec!('net start "Jenkins Slave"')
        puts "Logging out..."
    end
}

Das Skript wird auf allen Computern ausgeführt. Ich sehe die Ausgabe, dass der Dienst gestartet wurde. Dies jedochnoch nie funktioniert. Wenn ich zum Computer zurückschicke, wurde der Dienst nicht gestartet.

Leider kann ich Linux nicht verwenden - ich habe keine Kontrolle über diese Maschinen.

Irgendwelche Ideen, warum ein manuell ausgeführtes SSH funktioniert, aber das Skript nicht?

Danke phil

Antworten auf die Frage(1)

Ihre Antwort auf die Frage