PowerShell脚本执行ssh命令遇参数歧义错误求助
问题解决:PowerShell ISE中Start-Process执行ssh命令参数解析错误
错误原因
在PowerShell环境中,Start-Process会优先把以-开头的内容解析为自身的参数,你写的-o被PowerShell误认为是Start-Process的参数(匹配到了-OutVariable或-OutBuffer),而非传递给ssh的参数,因此触发参数歧义错误。
解决方案
使用-ArgumentList(可简写为-Args)参数,明确将ssh所需的参数传递给它,以下两种写法都可靠:
写法1:参数拆分为数组(推荐,避免空格解析问题)
Start-Process ssh -ArgumentList "-o", "KexAlgorithms=diffie-hellman-group14-sha1", "Username@IP"
写法2:参数合并为单个字符串
Start-Process ssh -ArgumentList "-o KexAlgorithms=diffie-hellman-group14-sha1 Username@IP"
执行上述命令后,PowerShell会正确将-o等参数传递给ssh,弹出新窗口并连接到指定交换机。
内容的提问来源于stack exchange,提问作者Callum Cooper
相关产品推荐
相关产品推荐

