为什么我无法从 Windows 8 命令提示符启动 telnet.exe?

为什么我无法从 Windows 8 命令提示符启动 telnet.exe?

我安装了 Windows远程登录telnet.exeWindows 8 企业版(RTM - 全新安装)上的客户端( )通过打开或关闭 Windows 功能。但是我似乎无法从管理员命令提示符启动它。

我对该驱动器进行了全面搜索C:,发现可执行文件位于C:\Windows\System32

telnet 搜索结果

我还可以在资源管理器中看到可执行文件:

资源管理器中的 telnet

在上述两种情况下,我都可以通过双击启动客户端,但由于某种原因,它在我的管理员cmd.exe命令提示符(或 PowerShell)中不可见:

在 cmd 中运行 telnet 结果

此外,如您在上面的屏幕截图中看到的,C:\Windows\system32它在我的PATH环境变量中是存在的并且是正确的。其他系统可执行文件可以正常启动(tasklist.exe例如)。

由于难以详细解释的原因,我无法使用第三方 telnet 客户端,例如 PuTTY。

有人能解释一下为什么会发生这种情况吗?

我也尝试过重新启动但仍然无济于事。

答案1

这是因为文件系统重定向器。32 位进程将看不到真实文件夹,而是获取替代Windows\System32文件夹的内容Windows\SysWOW64

为了使其在 32 位 cmd.exe 或任何 32 位 shell 上运行,您可以运行

cd %windir%\Sysnative\

将工作目录更改为真实的System32 文件夹然后telnet正常运行。或者直接运行%windir%\Sysnative\telnet打开64 位 telnet.exe

另一种方法是强行打开64 位 cmd.exe通过修改调用命令或快捷方式从 32 位进程(如 ViStart)%windir%\Sysnative\cmd.exe

telnet.exe或者只需将文件从 System32复制(或创建硬链接)到 SysWOW64

你也可以添加%windir%\Sysnative%PATH%环境变量 %windir%\System32这样在检查文件不存在后System32它会继续寻找Sysnative

答案2

这很可能是 的副作用PendingRenames,Windows 资源管理器太新了,它确保向您显示最新状态,同时考虑到待处理的重命名,而命令提示符太旧了,它本身读取驱动器,因此尚未看到重命名的文件。通常,它们首先安装到临时解压位置,然后重命名为实际位置。

我的猜测是,您Turn Windows features on or off.没有重新启动计算机就完成了操作,因此它仍然必须通过执行实际的重命名来完成功能的安装,以便您实际上可以从命令提示符中使用 telnet。

因此,简单的“您是否尝试过将其打开并再次关闭?”方法应该可以解决这个问题。

答案3

我终于搞清楚了这个问题。我安装了维斯特在对新版 Windows 8 越来越失望之后现代用户界面并且通过远程桌面连接使用起来特别棘手。

我正在使用 ViStart 进行我通常的肌肉记忆开始->运行->cmd.exe就像我在 Windows 7 上所做的那样。但是,事实证明 ViStart 是一个 32 位应用程序,并启动一个 32 位命令提示符。当然,这个 32 位的命令提示符是看不到的,telnet.exe因为它是一个 64 位 exe 等。

从那时起,我就放弃了 ViStart,觉得它是个坏主意,并决定学习使用现代 UI。

相关内容