【问题标题】:Posh-SSH to send multiple commands to Cisco SwitchPosh-SSH 向 Cisco 交换机发送多个命令
【发布时间】:2018-04-10 20:05:13
【问题描述】:

我正在尝试自动化一个过程,其中我有一个 powershell 脚本 SSH 到我们的 cisco 交换机并打开和关闭一个 Vlan 接口。当我尝试运行它时,我得到“使用“1”参数调用“EndExecute”的异常:“已建立的连接被服务器中止。””

我的脚本中缺少什么导致它出现这样的错误?谢谢。

Install-Module -Name Posh-SSH

#Set Creds
[ValidateNotNullOrEmpty()]$secpasswd = "myPass"
$secpasswd = ConvertTo-SecureString -String $secpasswd -AsPlainText -Force
$mycreds = New-Object Management.Automation.PSCredential ("myUser", $secpasswd)

#Build SSH session
New-SSHSession "MyIP" -Port 22 -Credential $mycreds
#Assign current session to Var.
$s = Get-SSHSession | Select -ExpandProperty SessionID -First 1

#Send SSH Commands
Invoke-SSHCommand -Command "show log" -SessionId $s
Invoke-SSHCommand -Command "conf t" -SessionId $s
Invoke-SSHCommand -Command "interface vlan 310" -SessionId $s
Invoke-SSHCommand -Command "shut" -SessionID $s
Invoke-SSHCommand -Command "no shut" -SessionID $s
Invoke-SSHCommand -Command "exit" -SessionId $s
Invoke-SSHCommand -Command "exit" -SessionId $s

#Close SSH-Session
Remove-SSHSession -SessionId $s

【问题讨论】:

标签: powershell ssh posh-ssh


【解决方案1】:

尝试使用 SSHShellStream > SSHStreamShellCommand

$SSHsession=New-SSHSession -ComputerName $YourSwitchIP -Credential $Cred -AcceptKey 
$SSHStream = New-SSHShellStream -Index $SSHsession.SessionId
#---> Enter conf
$cmd="conf"
Invoke-SSHStreamShellCommand -ShellStream $SSHStream -Command $cmd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2015-12-14
    相关资源
    最近更新 更多