Я установил Windowsтелнетклиент ( telnet.exe
) на Windows 8 Enterprise Edition (RTM - новая установка) черезВключение и выключение функций Windows. Однако я не могу запустить его из командной строки администратора.
Я выполнил полный поиск на C:
диске и обнаружил исполняемый файл, находящийся в C:\Windows\System32
:
Я также могу увидеть исполняемый файл в проводнике:
В обоих случаях я могу запустить клиент двойным щелчком, но по какой-то причине он не отображается в cmd.exe
командной строке администратора (или PowerShell, если на то пошло):
Также, как вы можете видеть на скриншоте выше, 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.