Why can't I launch telnet.exe from a Windows 8 command prompt?

Solution 1:

This is because of the file system redirector. A 32-bit process won't see the real Windows\System32 folder but get the content of the substituted Windows\SysWOW64 instead

To get it work on 32-bit cmd.exe or any 32-bit shells you can run

cd %windir%\Sysnative\

to change the working directory to that real System32 folder and then run telnet normally. Or just run %windir%\Sysnative\telnet directly to open 64-bit telnet.exe

Another way is to force open 64-bit cmd.exe from a 32-bit process (like ViStart) by modifying the invoking command or shortcut to %windir%\Sysnative\cmd.exe

Alternatively just copy (or create a hardlink) the telnet.exe file from System32 to SysWOW64

You can also add %windir%\Sysnative to the %PATH% environment variable after %windir%\System32 so that after checking that the file doesn't exist in System32 it'll continue looking in Sysnative

Solution 2:

This is most likely a side effect of PendingRenames, Windows Explorer is so new that it makes sure it shows you the latest state taking pending renames int account whereas Command Prompt is so old that it natively reads the drive and thus does not see the renamed files yet. Usually they are first installed to a temporary unpacked location and then later renamed to be at the actual location.

My guess is that you have done Turn Windows features on or off. without rebooting your computer, thus it still has to finish off the installation of the features by doing the actual renames such that you can actually use telnet from the command prompt.

Thus, the simple "have you tried to turn it on and off again?" approach should solve this.

Solution 3:

I finally got to the bottom of this. I had installed ViStart after becoming increasingly frustrated with the new Windows 8 Modern UI and which is particularly tricky to use over a Remote Desktop Connection.

I was using ViStart to do my usual muscle memory Start->Run->cmd.exe as I would on Windows 7. However, it turns out that ViStart is a 32-bit application and launches a 32-bit command prompt. Of course, this command prompt being 32-bit can't see telnet.exe because it's a 64-bit exe etc.

I have since given up on ViStart as a bad idea and have resigned myself to learn to navigate Modern UI instead.