You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Plink SSH自动获取HPE Aruba交换机MAC地址表遇问题求助

解决Plink自动执行HPE Aruba交换机命令时的连接中断问题

问题背景

需要通过Plink SSH自动获取HPE Aruba交换机的MAC地址表,现有PowerShell代码如下:

@( 
  ' ', # 用于跳过"Press any key to continue"提示
  'show mac-address'
  ) | plink <ip> -P 22 -ssh -v -l admin -pw pwd -batch 

Read-Host -Prompt “Press Enter to exit”

执行时偶尔出现两类异常:

  1. 终端控制字符输出+会话关闭:
←[1;13r←[1;1HSession sent command exit status 0
Main session channel closed
All channels closed
  1. 连接意外中断:
Remote side unexpectedly closed network connection
FATAL ERROR: Remote side unexpectedly closed network connection

但直接运行无管道的plink <ip> -P 22 -ssh -v -l admin -pw pwd -batch可正常进入交互会话,需实现稳定的自动化执行方案。

可能的原因

  • 管道输入的命令时机与交换机初始化流程不匹配,命令被提前发送至未就绪的会话,引发终端交互异常。
  • 默认终端类型(TERM)不符合交换机要求,触发特殊输出或连接行为。
  • 命令执行后未正确处理会话退出逻辑,交换机主动关闭连接。

解决方案

方案1:使用-m参数加载命令文件(推荐)

Plink的-m参数可指定包含命令的文本文件,会在会话完全建立后按顺序执行命令,比管道输入更稳定:

  1. 创建commands.txt文件,内容如下:
show mac-address
exit
  1. 修改PowerShell命令:
plink <ip> -P 22 -ssh -v -l admin -pw pwd -batch -term vt100 -m commands.txt

Read-Host -Prompt “Press Enter to exit”

-term vt100指定兼容的终端类型,避免终端交互异常。

方案2:优化管道输入的时机逻辑

若不想使用命令文件,可添加延迟确保命令在交换机就绪后发送:

(Start-Sleep -Seconds 2; 'show mac-address'; 'exit') | plink <ip> -P 22 -ssh -v -l admin -pw pwd -batch -term vt100

延迟时间可根据交换机初始化速度调整(1-3秒均可)。

方案3:关闭交换机的交互提示

若交换机存在欢迎横幅或"Press any key to continue"提示,可通过配置关闭:

  1. 进入交换机配置模式:configure terminal
  2. 关闭欢迎横幅:no banner motd
  3. 关闭按键提示(如适用):参考Aruba设备文档执行对应命令(例如no console quiet-mode)
    移除这些交互环节后,无需发送空格跳过提示,减少异常触发点。

方案4:禁用伪终端分配

尝试添加-T参数禁用Plink的伪终端请求,适用于纯命令执行场景:

plink <ip> -P 22 -ssh -v -l admin -pw pwd -batch -T -m commands.txt

内容的提问来源于stack exchange,提问作者Elias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:25:15