Gibt es eine Möglichkeit, Putty über die Befehlszeile so einzustellen, dass es beim Beenden automatisch das Fenster schließt?

Gibt es eine Möglichkeit, Putty über die Befehlszeile so einzustellen, dass es beim Beenden automatisch das Fenster schließt?

Ich versuche, eine Headless-Maschine zu bauen, die Putty beim Start automatisch über ein Skript ausführt und automatisch neu startet, wenn das Programm geschlossen wird.

Obwohl dies in den meisten Situationen technisch einwandfrei funktioniert, bleibt Putty bei Netzwerkproblemen einfach hängen und zeigt ein Popup an, dass die Verbindung getrennt wurde.

Ich habe die Option „Fenster beim Beenden schließen“ gesehen und weiß, dass ich sie brauche, aber ich kann dies nur für das Fenster tun – ich habe keine Möglichkeit gefunden, diese Einstellung über die Befehlszeile zu ändern.

Weiß jemand, ob dies möglich ist und was eingestellt werden muss … oder ob es nur möglich ist, die Standardeinstellungen zu ändern, da dies alles ist, was auf dieser Maschine ausgeführt wird?

Antwort1

Die beste Lösung wäre, eine benutzerdefinierte Sitzung in PuTTY zu erstellen (mit geänderter Einstellung „Fenster beim Beenden schließen“) und diese Sitzung über die Befehlszeile zu laden. Wenn Sie jedoch keinen Zugriff auf die GUI haben, ist dies nicht einfach. Mir ist jedoch keine Möglichkeit bekannt, individuelle Einstellungen über die Befehlszeile festzulegen.

Wenn Sie die Registrierung bearbeiten können, können Sie jedoch eine Sitzung erstellen, indem Sie einen neuen Schlüssel in

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

Dort können Sie dann Werte hinzufügen, die den Sitzungseinstellungen in der GUI entsprechen. Wenn Sie also möchten, dass das Fenster beim Beenden immer geschlossen wird, fügen Sie einen DWORD-Wert namens CloseOnExit mit dem Wert 2 hinzu. Alles andere, was nicht angegeben ist, bleibt als Standard.

Sie würden dann hinzufügen

-load "session name"

zu Ihrer Befehlszeilenzeichenfolge, wobei „Sitzungsname“ der Name des von Ihnen erstellten Schlüssels ist. Geben Sie danach beliebige andere Befehlszeilenoptionen ein (z. B. Server, Anmeldename, Kennwort usw.), und schon sind Sie fertig.

Ich habe dies selbst getestet, aber es ist dennoch ratsam, vor jeder manuellen Bearbeitung eine Sicherungskopie der Registrierung zu erstellen.

Alternativ gibt es Forks von PuTTY (wiePuTTY-Fach), die nach einer Unterbrechung eine automatische Wiederverbindung ermöglichen, obwohl ich nicht dafür bürgen kann, wie gut sie funktionieren.

Antwort2

Wenn dieser Fehler auftritt:

Kittfehler

dann kannst du schreibenAutoIt-Skriptder auf das Erscheinen dieses Fensters wartet und es bestätigt:

$title = "PuTTY Fatal Error"
WinWaitActive( $title )
ControlClick($title,"", "Button1", "primary")
sleep(100)
WinClose("PuTTY (inactive)","")

Sie können das Skript auch in eine kleine, eigenständige EXE-Datei kompilieren. Fügen Sie diese in Ihre Batchdatei ein, bevor Sie PuTTY starten.

Antwort3

Ich weiß, ich bin spät dran, aber Sie könnten auch Puttys verwenden plink.exe. Es verwendet dieselben Parameter wie Putty, wird aber ähnlich wie der sshBefehl inline ausgeführt. Es blockiert auch die Verarbeitung und gibt einen Fehlerstatus zurück, was bei einer fehlgeschlagenen Verbindung inmitten einer Reihe von Befehlen sehr nützlich sein kann.

verwandte Informationen