Почему я не могу запустить telnet.exe из командной строки Windows 8?

Почему я не могу запустить telnet.exe из командной строки Windows 8?

Я установил Windowsтелнетклиент ( telnet.exe) на Windows 8 Enterprise Edition (RTM - новая установка) черезВключение и выключение функций Windows. Однако я не могу запустить его из командной строки администратора.

Я выполнил полный поиск на C:диске и обнаружил исполняемый файл, находящийся в C:\Windows\System32:

результат поиска telnet

Я также могу увидеть исполняемый файл в проводнике:

telnet в проводнике

В обоих случаях я могу запустить клиент двойным щелчком, но по какой-то причине он не отображается в cmd.exeкомандной строке администратора (или PowerShell, если на то пошло):

запустить telnet в cmd результат

Также, как вы можете видеть на скриншоте выше, C:\Windows\system32присутствует и корректен в моей PATHпеременной окружения. Другие системные исполняемые файлы запускаются нормально ( tasklist.exeнапример).

По причинам, которые слишком долго объяснять, я не могу использовать сторонний клиент Telnet, такой как PuTTY.

Может ли кто-нибудь пролить свет на то, почему это происходит?

Я также попробовал перезагрузить, но это тоже не помогло.

решение1

Это из-за того, чтоперенаправитель файловой системы. 32-битный процесс не увидит настоящую папку, а вместо этого Windows\System32получит содержимое подмененной.Windows\SysWOW64

Чтобы заставить его работать в 32-битной cmd.exe или любой 32-битной оболочке, вы можете запустить

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так что после проверки того, что файл не существует вСистема32он продолжит искатьСиснативный

решение2

Скорее всего, это побочный эффект PendingRenames, Windows Explorer настолько новый, что он обязательно показывает вам последнее состояние, принимая ожидающие переименования int account, тогда как Command Prompt настолько старый, что он изначально считывает диск и, таким образом, пока не видит переименованные файлы. Обычно они сначала устанавливаются во временное распакованное местоположение, а затем позже переименовываются в фактическое местоположение.

Полагаю, что вы обошлись Turn Windows features on or off.без перезагрузки компьютера, поэтому ему все равно придется завершить установку функций, выполнив фактическое переименование, чтобы вы могли использовать telnet из командной строки.

Таким образом, простой подход «вы пробовали включить и выключить его снова?» должен решить эту проблему.

решение3

Я наконец-то докопался до сути. Я установилВиСтартпосле того, как я все больше разочаровался в новой Windows 8Современный пользовательский интерфейси что особенно сложно использовать через подключение к удаленному рабочему столу.

Я использовал ViStart для тренировки мышечной памяти.Пуск->Выполнить->cmd.exeкак я бы сделал на Windows 7. Однако, оказывается, что ViStart — это 32-битное приложение и запускает 32-битную командную строку. Конечно, эта командная строка, будучи 32-битной, не может видеть, telnet.exeпотому что это 64-битный exe и т. д.

С тех пор я отказался от ViStart, посчитав его плохой идеей, и решил вместо этого научиться ориентироваться в Modern UI.

Связанный контент