
121851
04.05.2015
Automatischer Login per Telnet
Hallo zusammen,
ich habe folgendes Problem. Erstmal bin ich nicht so fit was Programmieren angeht.
Gibt es eine möglichkeit eine Batch-Datei zuschreiben die z.B einen Neustart eines Gerätes durchführt?
Das Gerät hat eine feste IP, einen Benutzernamen und ein Passwort.
Ist es möglich das Listen mässig abzuarbeiten?
Anbei mal ein Bild wie das ganze Aussieht.

Vielen Dank schon mal für eure Hilfe.
Mit freundlichen Grüßen
fuddel18
ich habe folgendes Problem. Erstmal bin ich nicht so fit was Programmieren angeht.
Gibt es eine möglichkeit eine Batch-Datei zuschreiben die z.B einen Neustart eines Gerätes durchführt?
Das Gerät hat eine feste IP, einen Benutzernamen und ein Passwort.
Ist es möglich das Listen mässig abzuarbeiten?
Anbei mal ein Bild wie das ganze Aussieht.

Vielen Dank schon mal für eure Hilfe.
Mit freundlichen Grüßen
fuddel18
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 270997
Url: https://administrator.de/forum/automatischer-login-per-telnet-270997.html
Ausgedruckt am: 06.06.2025 um 17:06 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @121851:
Gibt es eine möglichkeit eine Batch-Datei zuschreiben die z.B einen Neustart eines Gerätes durchführt?
Das Gerät hat eine feste IP, einen Benutzernamen und ein Passwort.
Gibt es eine möglichkeit eine Batch-Datei zuschreiben die z.B einen Neustart eines Gerätes durchführt?
Das Gerät hat eine feste IP, einen Benutzernamen und ein Passwort.
Ja,
Ist es möglich das Listen mässig abzuarbeiten?
Ja.
Anbei mal ein Bild wie das ganze Aussieht.
???
Moin,
So was kann man z.B. mit expect scripten.
lks
PS: Es gibt auch Windows-versione von tcl/tk, mit dem expect unter windows läuft oder man nimmt expect.net.
Moin zusammen,
Hostname, Username, Password werden in der letzen Zeile angepasst.
Da ich es für deinen Fall nicht testen kann unverbindlich und ohne Gewähr. Eventuell musst du die waittime (ms) erhöhen falls es nicht klappen sollte.
Grüße Uwe
Kann jemand den Code mal schreiben?
habe ich gerade als Powershell-Script da.Hostname, Username, Password werden in der letzen Zeile angepasst.
Da ich es für deinen Fall nicht testen kann unverbindlich und ohne Gewähr. Eventuell musst du die waittime (ms) erhöhen falls es nicht klappen sollte.
function Invoke-Telnet{
param(
[parameter(mandatory=$true)][string]$hostname,
[int]$port = 23,
[parameter(mandatory=$true)][string]$username,
[parameter(mandatory=$true)][string]$password,
[string[]]$commands,
[int]$waittime = 1000
)
$tcpclient = new-object System.Net.Sockets.TcpClient($hostname,$port)
if ($tcpClient.Connected){
write-host "Connected to $hostname" -ForegroundColor Green
$stream = $tcpclient.GetStream()
$writer = new-Object System.IO.StreamWriter($stream)
$buffer = new-Object Byte 1024
$encoding = new-Object System.Text.ASCIIEncoding
# Login
write-host "Login..." -ForegroundColor Green
sleep -Milliseconds $waittime
$writer.WriteLine($username)
$writer.Flush()
sleep -Milliseconds $waittime
$writer.WriteLine($password)
$writer.Flush()
sleep -Milliseconds $waittime
# invoke remote commands
$commands | %{
write-host "Invoking Command: $_" -ForegroundColor Yellow
$writer.WriteLine($_)
$writer.Flush()
sleep -Milliseconds $waittime
}
$output = ""
while ($stream.DataAvailable){
[int32]$bytes = $stream.Read($buffer,0,$buffer.length)
$output += $encoding.GetString($buffer,0,$bytes)
}
# release resources
$writer.Close();$writer.Dispose()
# return output
write-host "Response:`n" -ForegroundColor Black -BackgroundColor Yellow
return $output
}else{
write-host "Could not connect to $hostname on Port $port" -ForegroundColor Red
}
$tcpclient.Close()
$tcpclient.Dispose()
}
Invoke-Telnet -hostname '169.254.102.184' -username 'bssaudio' -password 'GEHEIM' -commands 'reboot'
Zitat von @121851:
kann, ich das in eine Batch-Datei kopieren, ändern und es geht?
Nein, sonst hätte ich ja nicht geschrieben das es Powershell ist kann, ich das in eine Batch-Datei kopieren, ändern und es geht?
Da mir die Frage öfter gestellt wird:
- Zuerst speichert man den Code in einer Textdatei mit der Endung .ps1.
- Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine administrative Powershell-Konsole und gibt dort den Befehl
Set-ExecutionPolicy RemoteSigned -Force
ein. Um diese Policy für alle User auf dem Rechner zu setzen muss man diesen Befehl in einer Powershell-Konsole mit Admin-Rechten starten. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden:Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
- Jetzt kann das Powershell-Script wie weiter unten erläutert in einer Powershell-Konsole oder aus einer CMD-Fenster heraus ausgeführt werden. Wer lieber mit der Maus arbeitet macht einen Rechtsklick auf die Script-Datei und wählt: Mit Powershell ausführen.
"C:\Pfad\script.ps1"
.\script.ps1
Der einfachste Aufruf sieht hier so aus:
powershell.exe -File "C:\Pfad\Script.ps1"
powershell.exe -File "C:\Pfad\Script.ps1" "Parameter 1" "Parameter 2"
powershell.exe -command "&'C:\Pfad\Script.ps1' -par1 'Wert1' -par2 'Wert2'"
powershell.exe -command "&'C:\Pfad\Script1.ps1';&'C:\Pfad\Script2.ps1'"
powershell -?
in einer Konsole an.In der jeweiligen Aktion unter "Programm/Script" trägt man powershell.exe ein und unter "Argumente hinzufügen (optional)" trägt man wie oben geschrieben alles was hinter powershell.exe kommt ein - also z.B. -File "C:\Pfad\Script.ps1" "Parameter 1" "Parameter 2"