通过SSH和PowerShell执行多个命令

我成功通过SSH成功​​连接到Cisco IE-2000-L交换机。 我使用了Renci SSH.NET库。

入门指南: http : //vwiki.co.uk/SSH_Client_(PowerShell)

我的工作代码是

# Load SSH library (for .NET 4.0 and PowerShell 3) $DllPath = "D:\temp\Renci.SshNet.dll" [void][reflection.assembly]::LoadFrom( (Resolve-Path $DllPath) ) # Connect to switch (Cisco IE2000-L) with IP, port, username, password $SshClient = New-Object Renci.SshNet.SshClient('172.20.91.30', 22, 'admin', 'mypassword') $SshClient.Connect() # execute one command on Cisco switch $SshCommand = $SshClient.RunCommand('show arp') # show result $SshCommand.Result # close SSH connection $SshCommand.Dispose() $SshClient.Disconnect() $SshClient.Dispose() 

我的问题是

上面的代码只发送一个命令。 但是我想连续执行几个命令而不closures并重新打开一个会话。

如果我在第一个命令之后添加第二个命令

 # execute one command on Cisco switch $SshCommand = $SshClient.RunCommand('show arp') $SshCommand = $SshClient.RunCommand('show start') 

…脚本挂起,永远不会结束。 我究竟做错了什么?


次要相关信息

  • 我的主要目标是一次向Cisco交换机发送多个命令
  • 我已经与批处理cmdinput一起尝试过Plink 。 这不够可靠。 它有时候有时候,有时候不会。
  • 我已经尝试了telnet脚本 。 太尴尬了。