Scripting Telnet

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Registriert
15. Mai 2008
Beiträge
21.900
Reaktionspunkte
14
Punkte
0
hi leutz,

per Zufall bin ich auf ein kleines Tool gestoßen, mit dem man von Windows aus per Script über den Telnet die DS fernsteuern kann ;).

Das Programm ist zwar schon ein wenig älter, läuft aber auch unter Vista und heißt: Telnet Scripting Tool Version 1.0 (tst10.exe). Da der originale Download-Link leider nicht mehr funktioniert, hier ein Ersatzlink.

Nachdem man die Datei heruntergeladen und entpackt hat, kann man sie einfach mal unter Windows ausführen und bekommt die Bedienungsanleitung.

Die Idee des Tools ist es, Linux-Kommandofolgen in einer Windows-Datei (z.B. telnet-script.txt) zu speichern und per Aufruf im MSDOS-Fenster tst10 /r:telnet-script.txt auszuführen.

Damit wäre auch die Möglichkeit gegeben, eine Windows-Verknüpfung auf den Desktop zu legen, die den Verweis auf cmd.exe /c tst10 /r:telnet-script.txt enthält und mit einer Funktionstaste gekoppelt wird. Dann hätte man tatsächlich eine DS-Fernsteuerung per Knopfdruck eingerichtet. :D

Ich hoffe, ich konnte euer Interesse wecken.

itari
 
Zuletzt bearbeitet:
ich hab mal Screen-Shoots von meiner Desktop-Verknüpfung in Vista gemacht. Die tst10.exe ist bei mit im Verzeichnis C:\Synology; die Skript-Datei tel1.txt sieht bei mir so aus:
Rich (BBCode):
syno 23
WAIT "login:"
SEND "root\m"
WAIT "assword:"
SEND "MyPassword\m"
WAIT ">"
SEND "poweroff\m"
WAIT ">"

Selbst wenn ich die Desktop-Symbole ausblende, kann ich mit Taste-F11 die Diskstation herunterfahren ;)

itari

.
 

Anhänge

  • telnet1.jpg
    telnet1.jpg
    2,3 KB · Aufrufe: 1.238
  • telnet2.jpg
    telnet2.jpg
    37,1 KB · Aufrufe: 1.190
So etwas geht auch mit VBS
Rich (BBCode):
Set oShell = CreateObject("WScript.Shell")
oShell.Run "IP_Diskstation"
WScript.Sleep 3000
oShell.SendKeys"root"&vbcr
WScript.Sleep 1000
oShell.SendKeys"Passwort"&vbcr
WScript.Sleep 5000
oShell.SendKeys"1. Kommando"&vbcr
WScript.Sleep 500
oShell.SendKeys"2. Kommando"&vbcr

Futzt auch einwandfrei! ;)
 
Nachdem ihr es für Windows habt: Hier die Lösung für den MAC

Bekannterweise löse ich gerne Probleme mittels des bekannten Automator in Zusammenarbeit mit AppleScript. Dieses Script fragt nach dem Start das Passwort für Root ab und bietet daraufhin die Option den Herunterfahrens oder Neustarts der DS. Sollte keine Aktion gewählt werden, ertönt nach 10 Sekunden ein Doppelbeep und beendet das Skript.
Hierzu geht man in den Automator und wählt als erstes die Aktion "Appleskript ausführen" und gibt dort diesen Code komplett ein:
Rich (BBCode):
on run {input, parameters}
	set usr to "root"
	set temp to display dialog "Hallo Root. Bitte geben Sie ihr Passwort ein:" default answer ""
	set pw to text returned of temp as text
	display dialog "Welche Aktion möchten Sie ausführen?" buttons ¬
		{"Reboot", "Shutdown"} giving up after 10
	
	set DlogResult to result
	if button returned of result = "Reboot" then
		tell application "Terminal"
			do script "telnet IPderDS"
			delay 2
			do script usr in window 1
			delay 2
			do script pw in window 1
			delay 2
			do script "reboot" in window 1
			delay 15
		end tell
	else if button returned of result = "Shutdown" then
		tell application "Terminal"
			do script "telnet IPderDS"
			delay 2
			do script usr in window 1
			delay 2
			do script pw in window 1
			delay 2
			do script "poweroff" in window 1
			delay 15
		end tell
	else if gave up of DlogResult is true then
		beep 2
	end if
	return input
end run

Anschliessend fügt man eine Aktion "Pause" ein mit 15 Sekunden (Diese Pause kann auch kürzer gewählt werden, jedoch nicht der delay im vorhergehenden Skript, da dann dass Kommando etwaig nicht durchgereicht wird) und abschliessend eine Aktion "Programm beenden" mit dem Programm Terminal. Dies sollte dann so ausschauen:
bild1cv5.jpg


Anschliessen Ablage-> Sichern unter-> Name vergeben und als Programm abspeichern, wo man möchte.
Die Fenster schauen anschliessend so aus:
bild2ia0.jpg

bild3kz9.jpg


Wie immer keine Garantie und viel Spass.
best regards

PS Danke an itari für die tolle Idee!!!
 
Zuletzt bearbeitet:
ich hab mal Screen-Shoots von meiner Desktop-Verknüpfung in Vista gemacht. Die tst10.exe ist bei mit im Verzeichnis C:\Synology; die Skript-Datei tel1.txt sieht bei mir so aus:
Rich (BBCode):
syno 23
WAIT "login:"
SEND "root\m"
WAIT "assword:"
SEND "MyPassword\m"
WAIT ">"
SEND "poweroff\m"
WAIT ">"

Selbst wenn ich die Desktop-Symbole ausblende, kann ich mit Taste-F11 die Diskstation herunterfahren ;)

itari

.



Heisst das "assword" oder "Password" unter Wait !??
 
Heisst das "assword" oder "Password" unter Wait !??

Das ist ein Zeilenenden-Scanner ... es würde auch reichen "ssword:" oder nur "word:" bzw. "ogin:" oder "gin:"

Da manchmal das P von Passwort groß und manchmal klein geschrieben wird, hab ich es im Beispiel weggelassen.

itari
 
Und so sieht es aus für Linux User
bitte aber zuerst expect aus den Quellen Installieren

Rich (BBCode):
#!/usr/bin/expect
spawn /usr/bin/telnet
expect "telnet>" { send "open IpDerDS\n" } 
expect "login:" { send "root\n" }
expect "Password:" { send "yourpassword\n" }
expect "DiskStation>" { send "poweroff\n" }
exit
 
Und so kann man sich Automatisch auf die Telnet konsole ein loggen

Rich (BBCode):
#!/usr/bin/expect
spawn /usr/bin/telnet
expect "telnet>" { send "open IpDerDS\n" }
expect "login:" { send "root\n" }
expect "Password:" { send "YourPass\n" }

interact #This hands control of the keyboard over two you (Nice expect feature!)
 
Und so kann man sich Automatisch auf die Telnet konsole ein loggen

Rich (BBCode):
#!/usr/bin/expect
spawn /usr/bin/telnet
expect "telnet>" { send "open IpDerDS\n" }
expect "login:" { send "root\n" }
expect "Password:" { send "YourPass\n" }

interact #This hands control of the keyboard over two you (Nice expect feature!)


merci, dann haben wir ja jetzt alle 3 zusammen

best regards
 
Hallo,
das klingt ja für Insider-Ohren alles super toll.
Ist jemand in der Lage, eine Schritt-für-Schritt-Anleitung zu posten, für "Oberflächen-Fuzzies", die noch nie mit Telnet/VBS gearbeitet haben?
Viele Grüße,
NAS-Fux
 
Hallo,
da sowas gerade im englischen Forum gefragt wurde, habe ich mich sogar an dieses Thema erinnert.
Es geht auch als Einzeiler mit plink (Dokumentation).
Als Langform
plink xxx.xxx.xxx.xxx -l root -pw password poweroff
Kurzfassung
plink 107+ poweroff
wobei 107+ meine gespeicherte putty Konfiguration für die 107+ heißt und dort Authentifizierung per Key erfolgt. Läßt man in der Langform -pw weg wird nach dem Passwort gefragt.

Gruß Götz
 
Zuletzt bearbeitet:
Wie kann ich denn erreichen, dass das cmd Fenster offen bleibt (Win 7).
Ich will als zB nur, dass das Script sich via Telnet bei der DS anmeldet und ich dann von Hand weiter wursteln kann.
 
Hallo

Hallo Jungs,

gibt es beim MAC irgendeine möglichkeit das passwort mit in das Apple Script zu bauen sodas man kein Passwort mehr eingeben muß und direkt zum Shutdown Reboot kommt?

Danke:)
 
Zuletzt bearbeitet:
Hallo Gemeinde,

ich krame mal nen 2 Jahre alten Post wieder vor, weil ich genau nach einem Klick zum herunter fahren gesucht habe. Allerdings nicht nur den, sondern auch Einen zum Aufwecken meiner DS via Klick auf dem Desktop meines Win7 Notebooks. Und hier möchte ich euch mal eine einfache Möglichkeit anbieten. Ladet euch von hier diese WOL.exe herunter und baut euch eine Batchdatei mit dem Dateinamen einem Leerzeichen und der Mac-Adresse der DS drin und speichert es zusammen in ein Verzeichnis. Die Batchdatei bekommt eine Verknüpfung auf dem Desktop und schon hat man den Powerknopf auf dem Desktop.
Da fällt mir ein, man kann den Powerknopf auch in den Autostart seines Windows PCs stecken, dann hat man eine "Clientsteckdose".

aufwecken.png

Viel Spaß

theMario

EDIT: !!! ganz wichtig und deshalb vergessen. Die Mac-Adresse muss ohne die üblichen ":" oder "-" Trennzeichen geschrieben werden!!!
 
Zuletzt bearbeitet:
@theMario,

danke für den Tipp zum Ausbauen der Fernsteuerung - kannst es auch gerne in unser Wiki schreiben :)

Itari
 
Ich habe es gerade ausprobiert.

Damit es auch jeder versteht:

Die wol.exe muss im gleichen Verzeichnis sein wie die Batchdatei.
Die Btchdatei muss den die Dateiendung CMD oder BAT haben. Also z.B. DS_starten.cmd

In diese Datei kommt folgender Inhalt (Um die Datei zu bearbeiten Rechtsklick -> Bearbeiten):
Rich (BBCode):
wol.exe MAC_ADRESSE_DER_DS
 
Die wol.exe muss im gleichen Verzeichnis sein wie die Batchdatei.
Die Btchdatei muss den die Dateiendung CMD oder BAT haben. Also z.B. DS_starten.cmd

In diese Datei kommt folgender Inhalt (Um die Datei zu bearbeiten Rechtsklick -> Bearbeiten):
Rich (BBCode):
wol.exe MAC_ADRESSE_DER_DS
Hmmm, ich habe mit
wol.exe 0011320FF55F
in einer Batch-Datei (.cmd, WinXP-Sp3) keinen Erfolg, eine DS207+ möchte nicht aufwachen. Muss ich im Admin-Menü der DS noch was einstellen?
 
Kann denn eine DS207+ schon WOL? Ich dachte das sein erst mit späteren Modellen gekommen...
 
WOL muss aktiviert sein.

Schau mal, ob das unter Systemsteuerung -> Energie eingeschaltet ist.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat