2016-08-29 15 views
-1

У меня есть много переключателей, которые мы резервируем каждую ночь. Мне нужно создать задание, которое автоматически создаст резервную копию текущей конфигурации.Автоматические коммутаторы Telnet to cisco

В настоящее время я использую это, но как я могу использовать список IP-адресов сервера вместо необходимости повторять код.

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 10.1.130.91 23" 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 1000 


'Step 2 - Issue Commands with pauses' 

WshShell.SendKeys ("password") 

WScript.Sleep 1000 

WshShell.SendKeys ("{Enter}") 

WScript.Sleep 500 
WshShell.SendKeys ("Enable") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 

WshShell.SendKeys ("password") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 

WshShell.SendKeys ("terminal length 0") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 

WshShell.SendKeys ("show running-config") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 

wshShell.SendKeys ("copy run tftp://10.1.211.53/file1.xls") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 


wshShell.SendKeys ("10.1.211.53") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 

wshShell.SendKeys ("file1.xls") 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 2000 


'Step 3 - Exit Command Window 

WshShell.SendKeys "exit" 
WshShell.SendKeys ("{Enter}") 
WScript.Sleep 500 
WshShell.SendKeys "exit" 

WshShell.SendKeys ("{Enter}") 
+0

Хотя это очевидно, что это какой-то Visual Basic скрипт, это действительно помогает получить нужную аудиторию для вашего вопроса, если вы правильно маркировать вопрос с языка тегов, и/или теги окружающей среды, а также. Исправьте ваш вопрос для обновления ваших тегов. Также, пожалуйста, [читайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). –

+0

Я вижу IP-адреса в 3 sp ots в скрипте. Я вижу, что первым является IP-адрес telnet для целевого маршрутизатора. Для чего используются другие 2? Они когда-либо меняются, или они остаются прежними? Необходимо знать это, прежде чем цикл может быть настроен. –

+0

Привет, Спасибо за ваши ответы. Извините, если я не использовал правильный тег, я новичок в этом форуме. Это единственный IP-адрес, который изменит WshShell.SendKeys "telnet 10.1.130.91 23" ip-адреса: 10.10.130.91, 10.1.130.101 и т. Д. Цените свою помощь :-) –

ответ

0

Здесь вы идете. Просто создайте файл с именем CiscoIPs.txt со всем своим IP-адресом с возвратом каретки после каждого. Избегайте пробелов в конце записей.

10.2.2.23 
10.4.5.23 
10.5.7.23 

Список IP должен находиться в той же папке, что и VBScript, но вы можете, конечно, изменить, отредактировав «StripFile =„CiscoIPs.txt“в верхней части скрипта. Дайте мне знать, если у вас есть какие-либо вопросы.

Option Explicit 
Dim WshShell, strIPFile, objFSO, objFile, IPAddress 

strIPFile = "CiscoIPs.txt" 

On Error Resume Next 

set WshShell = CreateObject("WScript.Shell") 
Set objFSO = CreateObject("Scripting.FileSystemObject") 

Const ForReading = 1 
Const ForWriting = 2 
Const ForAppending = 8 
Const ReadOnly =  1 

Set objFile = objFSO.OpenTextFile(strIPFile, ForReading) 

Do Until objFile.AtEndOfStream 
    IPAddress = objFile.ReadLine 
    'WScript.Echo IPAddress 
    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 " & IPAddress & " 23" 

    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 1000 

    'Step 2 - Issue Commands with pauses' 

    WshShell.SendKeys ("password") 

    WScript.Sleep 1000 

    WshShell.SendKeys ("{Enter}") 

    WScript.Sleep 500 
    WshShell.SendKeys ("Enable") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("password") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("terminal length 0") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("show running-config") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("copy run tftp://" & IPAddress & ".xls") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("10.1.211.53") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 

    WshShell.SendKeys ("file1.xls") 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 2000 

    'Step 3 - Exit Command Window 

    WshShell.SendKeys "exit" 
    WshShell.SendKeys ("{Enter}") 
    WScript.Sleep 500 
    WshShell.SendKeys "exit" 
    WshShell.SendKeys ("{Enter}") 
Loop 

objFile.Close 
+0

Ларс, я забыл упомянуть. Если вам когда-либо понадобится создать сценарий Telnet с нуля, эта утилита лучше всего я видел. «Инструмент Scripting Tool». Проверьте мой ответ на эту публикацию. http://stackoverflow.com/questions/39274914/how-to-write-an-output-of-a-vb-script-to-a-file/39280318#39280318 –