對于 PS 7.2.1,Windows 和 Linux 上的相同呼叫回傳不同的結果,
New-PSSessionOption -OperationTimeout 360000
在 Windows 上,它回傳一個引數和值串列,其中 OperationTimeout 設定正確,00:06:00。
但在 Linux 上它失敗了,顯示以下錯誤:
New-PSSessionOption: A parameter cannot be found that matches parameter name 'OperationTimeout'.
怎么了?
在 Linux 上,如果我只發出“New-PSSessionOption”,沒有任何引數,它會回傳一個具有默認值的引數串列,包括“:OperationTimeout:00:03:00”。所以,它在實作中,但為什么我不能設定它?
順便說一句,我試圖從 Linux 復制許多檔案,大小不一。但是在 Copy-Item 運行幾分鐘后,它開始失敗,并出現“決議 Wsman 故障訊息的內部錯誤...”。這就是為什么我想將此超時設定得更長一些。
uj5u.com熱心網友回復:
也許你不需要解決你的問題,考慮到OperationTimeout 它并不像它的名字所暗示的那樣:
OperationTimeout 不會對遠程會話中運行的命令或行程施加時間限制,也不會影響其他遠程協議,如 SSH。
簡而言之:
GitHub 上的這條評論詳細說明了此設定實際控制的內容:它與遠程機器回應接收請求可能需要多長時間有關,但 PowerShell 只是在超時時安靜地重試。tl;dr 是:
-OperationTimeout影響 "mostly nothing"。可以說,它不應該暴露給最終用戶。實作實際的操作持續時間超時是GitHub 提案 #5434的主題,該提案建議將
-Timeout引數添加到Invoke-Command.
至于你的癥狀:
這可能是一個錯誤,因為即使
OperationTimeout特定于WS-Man/WinRM (在Windows上使用的遠程處理協議),您仍然可以嘗試遠程訪問 Windows 機器,并且New-PSSessionOption不需要您提交協議 -只有當您呼叫時,您New-PSSession才會提交協議,例如通過-SSHTransport.也就是說,因為聽起來該設定適用于呼叫方,所以可以想象 WS-Man 的 Linux 和 macOS 實作可能缺少它。一般來說,這個實作似乎有它的問題,可能沒有未來 - 請參閱這篇博文。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/454882.html
