我想我可以在PowerShell上运行下面的命令。如何在PowerShell上获取telnet输出?
$output = & echo quit | telnet localhost 22
echo $output
然而, $输出有什么也没有。 我试图验证SSH或Telnet连接。
请问您能告诉我如何从上述命令中获得输出吗?
我想我可以在PowerShell上运行下面的命令。如何在PowerShell上获取telnet输出?
$output = & echo quit | telnet localhost 22
echo $output
然而, $输出有什么也没有。 我试图验证SSH或Telnet连接。
请问您能告诉我如何从上述命令中获得输出吗?
这是不可能的。 MS telnet不使用stdin/out。在这里看到:C# + telnet process w/ redirected standard streams quits immediately
对于重定向的telnet会话的输出,你可以使用-f logfile
参数,然后将它导入到一个变量,你用它做后:$output = get-contents logfile
要发送keycommands远程登录,您可以使用$wshell = new-object -com wscript.shell
然后:
start-process telnet -argumentlist "-f w:\tmp\log.txt";
sleep 1;
$wshell.SendKeys("quit{ENTER}")
是的,我知道......不是你所期望的,但据我所知是与MS内置的远程登录控制台的唯一途径。如果你知道更好的方法,我会很高兴听到它。
如果您只想检查打开的端口,那么为什么不只是查询它们而不是telnetting?见here。
尝试调整它以从APC PDU收集Telnet输出(读取当前负载)。成功输入指定的密钥,并在telnet会话窗口中生成输出,但一旦telnet会话结束,该窗口不会关闭。它保持打开状态,“与主机丢失的连接”。
我可以按任意键关闭窗口,但PS脚本执行不会继续,所以不执行SendKeys语句后面的代码。
我是否缺少一些简单的东西?下面的代码。
$wshell = new-object -com wscript.shell
start-process telnet -argumentlist "pdu1-a6.domain.local -f c:\temptelnet.log"
sleep 1
$wshell.SendKeys("username{ENTER}password{ENTER}current{ENTER}quit{ENTER}")
$telnetoutput = get-content c:\temptelnet.log
$telnetoutput