Telnet не запускается из командной строки cmd в windows 7

11

Изменить: я использую Windows 7, 64 бит.

У меня установлен клиент Telnet, и если я захожу в c: \ windows \ system32, я нахожу файл "telnet.exe"; если я нажимаю на нее, telnet работает отлично.

Однако, если я набираю telnet в командной строке cmd, мне выдается сообщение «команда не распознана».

Я думаю, это потому, что c: \ windows \ system32 \ cmd.exe фактически запускает файлы из windows \ sysWOW64 (в котором также есть cmd.exe), и поэтому я попытался скопировать telnet.exe в эту папку; Когда я набираю telnet в строке cmd (независимо от того, какой cmd.exe я использую), я больше не получаю сообщение об ошибке, а вместо этого получаю ... ну, ничего. Он просто сидит там, как в ожидании ввода, но если я что-то наберу (например, «выйти»), он снова ничего не делает и ожидает ввода.

Наконец, я попытался в windows \ sysWOW64 удалить telnet.exe, создать ярлык telnet.lnk для telnet.exe в system32 и создать файл telnet.bat в windows \ sysWOW64, который запускает telnet.lnk. Теперь, если я дважды щелкну telnet.bat, telnet запустится идеально (в окне system32 \ cmd.exe); если я набираю telnet в командной строке cmd (опять же, неважно, какой именно), он запускает telnet.bat без каких-либо проблем (проверил это тестирование других команд), но возвращает "Acess denied" при открытии Telnet.lnk.

Так,

- телнет будет установлен и работает при двойном щелчке

- ярлыки к нему работают отлично, если дважды щелкнуть

- ни телнет , ни ярлыки (ни файлы , требующие ярлыки) не могут быть запущены из любой CMD строки.

И вот как далеко я зашел. Итак, да ... Есть идеи?

Сампайо
источник
3
Ваш каталог PATH содержит папку System32? Если да, то действительно ли путь действительно длинный с другими вещами? У меня лично были проблемы, когда слишком длинный путь может вызвать проблемы.
Скотт Чемберлен
Переменная «Path» содержит% SystemRoot% \ System32, а также несколько других каталогов, разделенных символом «;». (Пример:% SystemRoot%;% SystemRoot% \ System32; C: \ Program Files (x86) \ Common Files \ Ulead Systems \ MPEG; и т. Д.) Надеюсь, это поможет.
Сампайо
какой каталог встречается на вашем пути первым? system32 или syswow64? первый элемент в PATH, содержащий exe-файл с указанным вами именем, должен быть выполнен экземпляром.
Фрэнк Томас
Из этих двух первым будет system32, так как syswow64 там вообще нет. Абсолютным первым является некий каталог «Windows Live», второй каталог в списке
Sampaio
1
Что where telnet.exeговорит? Я только что включил клиент Telnet в Windows Features. 64-разрядная программа Telnet.exe была должным образом добавлена ​​в Windows \ System32. 32-разрядная версия не найдена в Windows \ SysWOW64. Набор telnetв командной строке cmd работал отлично, как и ожидалось. Не знаю, в чем проблема с твоей стороны.
Каран

Ответы:

8

Похоже, что на Win7 64 бит, telnet.exe является 64-битной командой. Вы можете запустить его из 64-битной оболочки (или командной строки cmd), но 32-битная оболочка попытается загрузить ее из SysWOW64, и там ее не будет найдено.

Я подозреваю, что вы используете 32-битную командную строку (например, из SysWOW64). Если вы запускаете 64-битную командную строку, telnet должен работать.

Вы можете проверить это, зайдя в меню Пуск> Выполнить, введите, cmdа затем запустите telnet из этой командной строки.

Как вы начинаете свою командную строку? Если это ссылка, взгляните на свойства. Если это из другой программы, и эта программа 32-битная, то это может быть проблемой.

jdigital
источник
Я проверил, запускается ли командная строка из system32. Я запустил его с помощью Run, набрав cmd, я фактически запустил его из папки system32 двойным щелчком мыши. Как я уже говорил в этом вопросе, я попытался ввести «telnet» в обеих командных приглашениях: из каталогов system32 и syswow64. Независимо от того, какой из них я выбрал, он ищет файлы в syswow64, по некоторым причинам.
Сампайо
1
Поведение, которое вы описываете, это то, что вы увидите, если запустите 32-битную командную строку. Запустите cmd.exe, затем перейдите в диспетчер задач и перейдите на вкладку Процессы. Сортировка по имени изображения (щелкните столбец «Имя изображения») и просмотрите все процессы cmd.exe. Есть ли у кого-нибудь из них *32рядом с ними?
jdigital
Хорошая идея. Я проверил, и действительно есть * 32 рядом с процессом. Однако в фактическом окне командной строки путь - system32 \ cmd.exe. Хм ... Редактировать: Иногда процесс не имеет * 32, в этом случае Telnet работает просто отлично. Итак, вопрос, я полагаю, заключается в том, почему иногда вызывается 32bit cmd.exe, и почему в 32битном cmd.exe появляется путь system32 \ cmd.exe в окне консоли
Sampaio
В 32-битном процессе system32переопределяется SysWOW64, поэтому вы не можете полагаться на путь, system32\cmd.exeне зная тип процесса, который его вызвал. Относительно того, почему 32-битный cmd.exe вызывается, это результат того, как он вызывается. Можете ли вы предоставить более подробную информацию?
jdigital
2
из 32-битного cmd вы можете запустить, %SystemRoot%\Sysnative\telnetчтобы получить 64-битный telnet
phuclv
2

Поймите, что этот пост (очень!) Опоздал, но у него были те же проблемы. Решил это, также скопировав C:\windows\system32\en-us\telnet.exe.muiв соответствующую папку в syswow64. Надеюсь, что это поможет кому-то еще в будущем.

dlinacre
источник
Эй, спасибо за ответ. Если это работает, лучше поздно, чем никогда! У меня больше нет компьютера, которым я пользовался, и, честно говоря, я даже не помню, что делал (или пытался) делать в то время. Возможно, этого файла не хватало, когда я пытался копировать. Я дам тебе +1, чтобы другие могли легко это найти.
Сампайо
0

Я сделал очень простую вещь, и все сработало для меня, просто скопируйте Telnet.exe из system32, вставьте его в SysWOW64 и запустите cmd.exe, который возбуждает в каталоге SysWOW64, и все работает отлично .. надеюсь, это будет работать для вас. ...

Blackshine12
источник
0

СИМПТОМ В Windows Vista и Windows 7 запуск конфигурации отладки с платформой Cortex-A8 RTSM или FVP может привести к следующей ошибке: Windows не может найти 'c: \ windows \ system32 \ telnet.exe ПРИЧИНА Отладчик DS-5 использует возможности telnet из ваш компьютер для сеанса отладки через последовательное соединение с RTSM и FVP. Эта ошибка возникает при попытке подключиться к RTSM и FVP из отладчика, а клиент telnet отключен. Клиент telnet не включен по умолчанию в Windows Vista и Windows 7.

РАЗРЕШЕНИЕ Включите клиент Telnet на своем компьютере и перезапустите сеанс отладки. Чтобы включить клиент Telnet в Windows Vista и Windows 7:

Откройте Панель управления из меню Пуск Windows.

Выберите Программы.

В разделе «Программы и компоненты» нажмите «Включить или отключить функции Windows».

В появившемся списке установите флажок Клиент Telnet, чтобы включить telnet.

Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

Нгуен Данг Тунг
источник
Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос. OP уже имеет установленный telnet.
DavidPostill