通过PuTTY将多个命令传递给Cisco交换机

时间:2017-10-20 10:11:10

标签: windows powershell ssh putty cisco

我正在尝试在Windows上使用PuTTY在Cisco交换机上运行一组show命令。

我无法使用putty.exe以外的任何内容(没有Plink,expect,任何内容!)。

我在升级的PowerShell窗口中运行以下命令:

c:\temp\switches\putty.exe -load "cisco" -ssh IPADDRES -l username -pw password -m C:\temp\ciscoCMDs.txt

*“思科”配置只是将其设置为将控制台窗口记录到文本文件中。

ciscoCMDs.txt的内容如下:

show version
show vlan

当我在一个提升的PowerShell窗口中运行该命令时,PuTTY启动并说:

  

=〜=〜=〜=〜=〜=〜=〜=〜=〜=〜=〜= PuTTY log IPADDRESS 11:58:44 =〜=〜=〜=〜=〜=〜=〜=〜 =〜=〜=〜=使用用户名“用户名”。
  Line具有无效的自动命令“show version show vlan”

如果我在第一行末尾放置! ...

show version !
show vlan

它运行show version命令,但不运行show vlan命令。

如何运行第二个命令? (我打算在那里再添加几个命令,但是如果第二个命令可以运行,那么第三个命令就没有理由...... nth ......不会运行。)

PuTTY配置文件中是否有配置需要设置文件结束或行尾?

我需要在行尾添加一个特殊字符才能使它知道第二个命令即将到来吗?

要清楚明白:

  
      
  1. 我只能使用PuTTY和SSH访问Cisco交换机。
  2.   
  3. 我不能使用除putty.exe以外的任何其他文件或程序,SSH连接以及包含命令列表的commands.txt文件。
  4.   
  5. 我想从一个.txt文件运行多个show命令,并使用单个PuTTY配置文件和单个命令记录命令的输出   通过PowerShell运行。
  6.   

******** EDIT ************

我需要将十六进制的0d0a发送到CLI。有谁知道这是怎么做到的吗? \ n和\ r不起作用。有没有办法指定cisco IOS,它正在查看的信息是十六进制?

1 个答案:

答案 0 :(得分:0)

它实际上是Cisco的一个已知限制,它不支持SSH中的多个命令" exec"频道命令。

引用PuTTY / Plink手册的3.8.3.6 -m: read a remote command or script from a file部分:

  

对于某些服务器(特别是Unix系统),您甚至可以在此文件中放置多行,并按顺序执行多个命令,或者整个shell脚本;但这可以说是一种滥用,并且无法在所有服务器上运行。 特别是,已知与某些“嵌入式”服务器(例如Cisco路由器)配合使用。

使用Plink和输入重定向可以解决问题。

如果你真的被PuTTY困住了,那么作为一个非常严重的黑客,你可以send key strokes with your PowerShell scriptputty.exe子流程。