Как автоматизировать команды Telnet с помощью скрипта VB

автоматизировать телнетНаписание пакетных заданий (.bat

) и совсем недавно Windows-скрипты

(.wsf) — это действие, которое действительно составляет большую часть того, как подавляющее большинство сетевых и системных администраторов выполняют свою работу быстрее, и упрощает то, что в противном случае было бы трудоемким и сложным заданием. Используя пакетные задания, вы можете автоматизировать установку и удаление приложений, выполнить инвентаризацию программного обеспечения и настроек ОС всех ПК в вашей сети, а также множество других запросов и заданий. Однако есть определенные задачи, которые иногда проходят несколько уровней аутентификации, например, telnet.

Многим сетевым администраторам приходится подключаться к сетевым коммутаторам через telnet, чтобы запрашивать или настраивать порты, отслеживать состояние систем или даже перезагружать сетевые устройства, которые принимают команды через telnet. Разве не было бы приятно, если бы вы могли автоматизировать задания telnet, как если бы вы писали обычные пакетные задания?

Правда в том, что если вы привыкли использовать сценарий VB для создания своих сценариев Windows (или даже если нет), сценарии VB предоставляют очень полезную функцию, позволяющую установить сценарий Windows Shell как объект, а затем выполнить его. «Объект» тщательно рассчитанные команды. По сути, это то же самое, что вы сидите за окном команд и набираете команды. Разница лишь в том, что ваш скрипт Windows отправляет в окно команды для вас.

Автоматизируйте работу Telnet

Эта задача состоит в основном из двух частей. Вам необходимо установить последовательность команд, которую вы хотите выполнить во время типичного сеанса Telnet.

Вот что я хочу сделать. У меня есть 5 устройств по всей сети, которые можно удаленно перезагрузить через telnet, выполнив 4 простые команды. Я должен сначала Telnet к нему, используя IP-адрес и определенный порт. Затем появляется меню, и я должен сначала нажать Enter.

автоматизировать телнет

После того, как я нажму Enter во время этой сессии telnet, в следующем меню ожидается числовой ответ, а затем Enter.

автоматизировать телнет

Звучит немного невозможным для сценариев, не так ли? Ну, никогда не стоит недооценивать силу Visual Basic.

Теперь есть другие способы сделать это. Просто посмотрите статью Абхигьяна о Tst10.exe, чтобы узнать, как некоторые люди любят использовать метод сценариев Tst для автоматизации сеансов telnet. К сожалению, вы также увидите, что это может быть немного сложным для тех, кто не привык писать много скриптов. Tcl — еще один аналогичный язык сценариев, который программисты годами использовали для одной и той же задачи.

Тем не менее, я покажу вам, как файл сценария VB будет выполнять те же задачи за меньшее время и с использованием сценария, который монументально легче понять.

Итак, вот что мы собираемся сделать. Я собираюсь разбить сценарий на разделы. Поместите все это в текстовый файл с именем что-то вроде Autotelnet.wsf, дважды щелкните, и он запустится.

Сначала — установите сеанс telnet:

Option Explicit
On Error Resume Next
Dim WshShell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"
WScript.Sleep 1000
'Send commands to the window as needed - IP and commands need to be customized
'Step 1 - Telnet to remote IP'
WshShell.SendKeys "telnet xx.xx.xx.73 9999"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000

Приведенный выше фрагмент кода автоматически откроет окно командной строки, а затем подключится к устройству по любому конкретному порту, к которому нужно подключиться. Замените «х» на ваш собственный IP.

Команда sleep будет ждать достаточно долго, пока устройство ответит и предложит вашему сценарию следующую команду. Убедитесь, что это время ожидания достаточно велико для того, чтобы это действие имело место.

Во-вторых, вам нужно посылать каждую команду по одной, обеспечивая достаточное время ожидания между ними для ответа сеанса telnet.

'Step 2 - Issue Commands with pauses'
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "5"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000

В этом примере я выпустил две команды, которые я отметил выше. Сначала у меня есть скрипт, который отправляет команду «Enter», подождите секунду, затем отправьте «5» и снова нажмите «Enter». Этот короткий ряд действий будет выполняться точно так же, как если бы вы сидели перед окном команд telnet и выполняли их самостоятельно. Вам просто нужно настроить этот сценарий так, чтобы он выполнял точные ответы, необходимые для сеанса telnet.

Наконец, не забудьте закрыть командное окно и завершить сценарий.

'Step 3 - Exit Command Window
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Quit 

Это все, что нужно для автоматизации telnet — три простых шага внутри очень простого сценария. Просто возьмите три раздела выше и настройте их по своему желанию. Вы будете автоматизировать все свои задачи поддержки для управления сетевыми коммутаторами, таймерами или другими удаленными системами, которые обмениваются данными через telnet.

Если у вас есть повторяющиеся задачи, которые вам приходится делать часто, сделайте свою жизнь намного проще, создав автоматизированные сценарии Windows, которые выполнят эти задачи за вас. Вы будете более продуктивными, и ваш босс будет действительно впечатлен!

Есть ли у вас какие-либо другие идеи для классных задач, которые вы могли бы автоматизировать с помощью такого сценария Windows? Как вы автоматизировали свои собственные задачи telnet? Поделитесь своими мыслями и знаниями в разделе комментариев ниже.

Изображение предоставлено: Shutterstock

Ссылка на основную публикацию
Adblock
detector