You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量获取多台主机FileZilla Server版本的Telnet实现及输出捕获问题求助

批量获取多台主机FileZilla Server版本的Telnet实现及输出捕获问题求助

我现在需要批量远程查询大量主机上安装的FileZilla Server版本号。

我知道如果用Telnet连接到FZ服务器,会收到一条包含版本信息的响应,之后连接会一直挂着,得用quit命令、Ctrl+C或者直接终止进程才能断开。

我的目标是遍历服务器列表,给每台主机建立Telnet连接,把带版本号的响应信息记录到文件里。如果有更优雅的方法能拿到这个信息,我完全愿意尝试——目前这是我能想到的最好方案了。

我搜过不少相关解决方案,但大部分场景只需要检查服务器是否在线,用Test-Connection这类命令就够了,和我的需求不太匹配。

说说我目前的尝试:

  • 用plink(PuTTY的命令行客户端)作为可脚本化的Telnet工具
  • 用PowerShell写脚本(我比Windows CMD更熟悉PowerShell,但也接受其他语言的解决方案)

我现在最核心的问题是没法把plink的响应内容保存下来。Plink连接时会新开一个会话,我怎么都没法把输出内容存到主脚本的日志文件里(甚至根本存不下来)。

比如我用这条命令启动plink会话:

Start-Process 'plink.exe' -ArgumentList '-telnet', '$IP', '-P', '$PORT'

能正常得到这样的响应:

220-FileZilla Server version 0.9.43 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/

但换成下面这条命令,却完全没法把内容输出到文件里。我试过用2>和3>,猜测是不是输出到错误流或者其他特殊流了,但都没用——生成的文件永远是空的:

Start-Process 'plink.exe' -ArgumentList '-telnet', '$IP', '-P', '$PORT' > C:\Temp\testps2.txt

我现在有点懵,要么是我漏掉了某个超简单的细节,要么就是这事看起来原理简单,但实际做起来特别复杂。

本来下一步是要实现连接打开(并捕获到信息)后自动关闭会话,但现在连信息都抓不到,根本没心思往下推进。

非常感谢任何帮助和思路,我现在真的有点一筹莫展了。

备注:内容来源于stack exchange,提问作者Oddthetall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 13:58:05