Автоматизируем telnet

У многих администраторов, зачастую возникала необходимость сделать что-либо через telnet клиент. И я думаю, что многим знакома та боль, когда, например, в конце сессии вместо нужного символа идет опечатка с последующей необходимостью начинать все сначала. В частности, мне лично приходилось очень часто сталкиваться с этим при проверке SMTP протокола.

В связи с этим, я написал небольшой скриптик на PowerShell, который позволяет автоматизировать работу telnet-сессий. Собственно вот он:

#Адрес файла с командами сессии, первой строкой должно идти "telnet host port"
$telnetfile = "D:\Profile\Desktop\cmd.txt"
$telnet = Get-Content -Path $telnetfile
#Запуск cmd
$wshell = New-Object -ComObject wscript.shell;
$wshell.Run("cmd.exe /K title Telnet Session")
$wshell.AppActivate("Telnet Session")
#Построчное вполнение команд из файла с командами сессии
ForEach ($str in $telnet){
 #Активирует окно telnet клиента, если оно теряет фокус.
 If ($str -ne $telnet[0]) {
 $wshell.AppActivate("Telnet Session")
 $wshell.AppActivate("Telnet $($telnet[0].Split(" ")[1])")
 }
 $wshell.SendKeys($str)
 $wshell.SendKeys("{enter}")
 #Пауза, на случай если удаленный сервер не усеет ответить
 Start-Sleep -Seconds 1
}

И для примера, как должен выглядеть текст файла с командами:

telnet post.host.com 25
HELO postserver.domain.ru
MAIL from: admin@domain.ru
RCPT to: adm@host.com
DATA
Subject: Test message
.

Файлик с готовым скриптом можно скачать отсюда: auto_telnet_script.

Оставить комментарий