???紵 发表于 2018-7-18 09:38:24

如何批量配置修改Cisco设备?

  在配置和维护一个大型的网络时,我们常常需要做一些重复性的劳动,在配置时我们往往是做一个配置模版文件,然后根据不同设备的要求进行相应的修改,最后将其通过拷贝和粘贴的方式输入Cisco的设备,这样思路清晰同时也不容易出错。
  在维护过程中,我们往往需要远程登录到各个设备进行一些相关的配置,比如批量的修改所有设备的密码,如果手工的进行每台设备的修改即费时又容易出错,有没有更好的选择呢?其实我们可以通过以下几种方式实现自动的配置修改:
  1、Ciscoworks2000配置自动分发方式;
  2、终端脚本方式;
  3、tclsh脚本方式;
  4、windows脚本方式;
  第1种方式,可以参考Ciscoworks2000的文档来配置;
  第2种方式,是指有些终端程序支持各种脚本,比如SecureCRT支持VBScript和JScript两种脚本,因此我们可以通过相应的配置来完成批量的工作,具体的配置参加各种终端的说明;
  第3种方式,是利用支持tclsh的IOS来实现的,它需要在支持tclsh的设备上(比如这里是r1)配置如下内容:
  ip rcmd rsh-enable
  ip rcmd remote-host r1 10.1.1.1 r1 enable
  ip rcmd source-interface Loopback0
  在其它需要被远程配置的设备上配:
  ip rcmd rsh-enable
  ip rcmd remote-host r1 10.1.1.1 r1 enable
  这样凭空增加了一些工作量,而且还需要IOS的支持,否则无法实现;
  第4种方式,是我们在这里要重点讨论的方法,它是采用windows脚本的方式。由于Windows脚本主机是系统自带的,我们不需要安装任何的其它软件就可以实现,而且VBS的脚本也很容易理解,所以它一般是解决问题的首选。下面我们来详细讲解一下:
  目的:批量修改3个Cisco路由器的enable密码,将enable密码改为test,路由器的IP地址分别为10.1.1.1、10.1.1.2、10.1.1.3;
  步骤1,我们建立一个名字叫做test.vbs的脚本;
  '建立Shell对象
  set sh=WScript.CreateObject("WScript.Shell")
  WScript.Sleep 1000
  'telnet到10.1.1.1路由器
  sh.SendKeys "open 10.1.1.1"
  WScript.Sleep 1000
  sh.SendKeys "{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的登录密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "enable{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的enable密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  '运行cisco的config term命令,进入配置模式
  sh.SendKeys "config term{ENTER}"
  WScript.Sleep 1000
  '运行cisco的no enable password命令,清楚enable密码
  sh.SendKeys "no enable password{ENTER}"
  WScript.Sleep 1000
  '运行cisco的enable password test命令,重设enable密码为test
  sh.SendKeys "enable password test{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '运行cisco的wr mem命令,保存配置
  sh.SendKeys "wr mem{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '给控制台输入一个空格符
  sh.SendKeys "{ }"
  WScript.Sleep 1000
  'telnet到10.1.1.2路由器
  sh.SendKeys "open 10.1.1.2"
  WScript.Sleep 1000
  sh.SendKeys "{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的登录密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "enable{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的enable密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  '运行cisco的config term命令,进入配置模式
  sh.SendKeys "config term{ENTER}"
  WScript.Sleep 1000
  '运行cisco的no enable password命令,清楚enable密码
  sh.SendKeys "no enable password{ENTER}"
  WScript.Sleep 1000
  '运行cisco的enable password test命令,重设enable密码为test
  sh.SendKeys "enable password test{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '运行cisco的wr mem命令,保存配置
  sh.SendKeys "wr mem{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '给控制台输入一个空格符
  sh.SendKeys "{ }"
  WScript.Sleep 1000
  'telnet到10.1.1.3路由器
  sh.SendKeys "open 10.1.1.3"
  WScript.Sleep 1000
  sh.SendKeys "{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的登录密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "enable{ENTER}"
  WScript.Sleep 1000
  '输入该路由器的enable密码,这里为cisco
  sh.SendKeys "cisco{ENTER}"
  WScript.Sleep 1000
  '运行cisco的config term命令,进入配置模式
  sh.SendKeys "config term{ENTER}"
  WScript.Sleep 1000
  '运行cisco的no enable password命令,清楚enable密码
  sh.SendKeys "no enable password{ENTER}"
  WScript.Sleep 1000
  '运行cisco的enable password test命令,重设enable密码为test
  sh.SendKeys "enable password test{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '运行cisco的wr mem命令,保存配置
  sh.SendKeys "wr mem{ENTER}"
  WScript.Sleep 1000
  sh.SendKeys "exit{ENTER}"
  WScript.Sleep 1000
  '给控制台输入一个空格符
  sh.SendKeys "{ }"
  步骤2,建立一个test.bat的批处理文件:
  rem 启动telnet
  start telnet.exe
  rem batch telnet
  cscript //nologo test.vbs
  步骤3,我们只需要运行test.bat就可以轻松完成自动修改密码的工作了。
  这里我们只是用telnet到cisco路由器上修改密码作为一个例子,其实通过这种方法我们可以完成许多配置工作,这就需要大家开动脑筋,在实践中去体验了。
  对于SendKeys这个命令可以send什么,我们可以看下面的列表:
  BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
  BREAK {BREAK}
  CAPS LOCK {CAPSLOCK}
  DEL or DELETE {DELETE} or {DEL}
  DOWN ARROW {DOWN}
  END {END}
  ENTER {ENTER}or ~
  ESC {ESC}
  HELP {HELP}
  HOME {HOME}
  INS or INSERT {INSERT} or {INS}
  LEFT ARROW {LEFT}
  NUM LOCK {NUMLOCK}
  PAGE DOWN {PGDN}
  PAGE UP {PGUP}
  PRINT SCREEN {PRTSC}
  RIGHT ARROW {RIGHT}
  SCROLL LOCK {SCROLLLOCK}
  TAB {TAB}
  UP ARROW {UP}
  F1 {F1}
  F2 {F2}
  F3 {F3}
  F4 {F4}
  F5 {F5}
  F6 {F6}
  F7 {F7}
  F8 {F8}
  F9 {F9}
  F10 {F10}
  F11 {F11}
  F12 {F12}
  F13 {F13}
  F14 {F14}
  F15 {F15}
  F16 {F16}
  SHIFT +
  CTRL ^
  ALT %
页: [1]
查看完整版本: 如何批量配置修改Cisco设备?