簡體   English   中英

Posh-SSH 和 Cisco Gear

[英]Posh-SSH and Cisco Gear

我一直致力於使用 Powershell 和 Posh-SSH 模塊編寫一些腳本。 我主要連接到 Cisco 設備,但也有一些其他網絡設備。 我的問題似乎是我可以很好地連接到設備,但我的命令似乎無法運行。 我嘗試過 Invoke-SSHCommand 以及創建 New-SSHShellStream。 奇怪的是,如果我打開 Powershell 並手動執行每個命令,它似乎工作得很好,但由於某種原因,在腳本中運行不會產生我正在尋找的結果。

我發現 plink.exe 工作得很好,但如果可能的話,我真的寧願從 Powershell 編寫所有這些代碼。 這些網絡設備是否缺少可能與 Linux 服務器不同的東西?

代碼:
New-SSHSession -ComputerName $fw-ip -Credential (Get-Credential) -Verbose<br/> $session = Get-SSHSession -Index 0<br/> $stream = $session.Session.CreateShellStream("dumb", 0, 0, 0, 0, 1000)<br/> $stream.Write("show ver")<br/> $stream.Read()


我得到什么:
Type help or '?' for a list of available commands.<br/> FW/Admin>

因此,在評論中與您合作后,看起來有兩個問題,第一個是 SSH.NET 庫支持的 SSH shell 似乎不支持部分命令,將“顯示版本”交換為“顯示版本”更正了這一點. 此外,該命令的運行時間比腳本在流上調用其 read() 之前等待的時間要長一些,這可以通過在 write() 和 read() 之間添加start-sleep -seconds 5來修復。 如果您計划將其與可能需要更長時間的命令一起使用,或者您不確定它們將需要多長時間,您可能需要研究一些額外的處理,以檢查命令是否通過檢查 dataavailable 屬性或創建一個DataReceived 事件的偵聽器,但如果您保持簡單,一個基本的計時器將非常適合您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM