Telnet nie będzie uruchamiany z wiersza polecenia cmd w Windows 7

11

Edycja: Korzystam z systemu Windows 7, 64 bity.

Mam zainstalowanego klienta Telnet, a jeśli przejdę do c: \ windows \ system32, znajdę plik „telnet.exe”; po kliknięciu telnet działa idealnie.

Jednak po wpisaniu telnet w wierszu polecenia cmd pojawi się komunikat „polecenie nie zostało rozpoznane”.

Myślę, że to dlatego, że c: \ windows \ system32 \ cmd.exe faktycznie uruchamia pliki z systemu Windows \ sysWOW64 (który również ma cmd.exe), więc spróbowałem skopiować telnet.exe do tego folderu; Kiedy wpisuję telnet w wierszu cmd (niezależnie od tego, którego używam cmd.exe), nie otrzymuję już komunikatu o błędzie, a zamiast tego dostaję ... cóż, nic. Po prostu tam siedzi, jak podczas oczekiwania na dane wejściowe, ale jeśli coś wpisuję (np. „Wyjdź”), to po raz kolejny nic nie robi i oczekuje na dane wejściowe.

Wreszcie próbowałem, w systemie Windows \ sysWOW64, usunąć telnet.exe, utworzyć skrót telnet.lnk do telnet.exe w systemie32 i utworzyć plik telnet.bat w systemie Windows \ sysWOW64, na którym działa telnet.lnk. Teraz, jeśli kliknę dwukrotnie telnet.bat, telnet uruchomi się idealnie (w oknie system32 \ cmd.exe); jeśli wpiszę telnet w wierszu polecenia cmd (ponownie, nie ma znaczenia, który), uruchomi on telnet.bat bez żadnych problemów (sprawdzam to testowanie innych poleceń), ale zwróci „Acess denied” podczas otwierania Telnet.lnk.

Więc,

- telnet jest zainstalowany i działa po dwukrotnym kliknięciu

- skróty do niego działają idealnie po dwukrotnym kliknięciu

- ani telnet ani skrótów (ani plików zawijające skróty) mogą być uruchamiane z albo cmd szybka.

I tak daleko zaszedłem. Więc tak ... Jakieś pomysły?

Sampaio
źródło
3
Czy twój katalog PATH zawiera folder System32? Jeśli tak, to czy ścieżka jest naprawdę długa w przypadku innych rzeczy? Osobiście miałem problemy, w których zbyt długa ścieżka może powodować problemy.
Scott Chamberlain,
Zmienna „Ścieżka” zawiera% SystemRoot% \ System32 wraz z kilkoma innymi katalogami oddzielonymi przez „;”. (Przykład:% SystemRoot%;% SystemRoot% \ System32; C: \ Program Files (x86) \ Common Files \ Ulead Systems \ MPEG; itp.) Mam nadzieję, że to pomoże.
Sampaio,
który katalog występuje na twojej ścieżce jako pierwszy? system32 czy syswow64? pierwszy element w zmiennej PATH zawierający plik exe o podanej nazwie powinien być wykonaną instancją.
Frank Thomas
Z tych dwóch pierwszym byłby system32, ponieważ syswow64 w ogóle go nie ma. Absolutnym pierwszym jest jakiś katalog „Windows Live”, a system32 jest drugim wymienionym katalogiem
Sampaio
1
Co where telnet.exemówi Właśnie włączyłem klienta Telnet w funkcji Windows. Telnet.exe, 64-bitowy program, został należycie dodany do systemu Windows \ System32. W systemie Windows \ SysWOW64 nie znaleziono wersji 32-bitowej. Pisanie telnetw wierszu polecenia cmd działało idealnie zgodnie z oczekiwaniami. Nie wiem na czym polega problem.
Karan

Odpowiedzi:

8

Wygląda na to, że w 64-bitowym Win7 telnet.exe to 64-bitowe polecenie. Możesz uruchomić go z 64-bitowej powłoki (lub polecenia cmd), ale 32-bitowa powłoka spróbuje załadować ją z SysWOW64 i tam jej nie będzie.

Podejrzewam, że używasz 32-bitowego wiersza polecenia (na przykład z SysWOW64). Jeśli uruchomisz 64-bitowy wiersz polecenia, telnet powinien działać.

Możesz to przetestować, przechodząc do Menu Start> Uruchom, wpisz, cmda następnie uruchom telnet z tego wiersza polecenia.

Jak uruchamiasz wiersz polecenia? Jeśli jest to link, spójrz na właściwości. Jeśli pochodzi z innego programu, a ten program ma 32 bity, może to stanowić problem.

jdigital
źródło
Sprawdziłem, czy jest uruchomiony z wiersza polecenia z systemu32. Uruchomiłem go za pomocą polecenia Run, wpisując cmd, faktycznie uruchomiłem go z folderu system32, klikając dwukrotnie. Jak powiedziałem w pytaniu, próbowałem wpisać „telnet” w obu wierszach poleceń: z katalogu system32 i syswow64. Bez względu na to, który wybiorę, z jakiegoś powodu szuka plików w syswow64.
Sampaio
1
Opisywane zachowanie jest tym, co można zobaczyć, uruchamiając 32-bitowy wiersz polecenia. Uruchom cmd.exe, a następnie przejdź do Menedżera zadań i kliknij kartę Procesy. Sortuj według nazwy obrazu (kliknij kolumnę Nazwa obrazu) i spójrz na wszystkie procesy cmd.exe. Czy któryś z nich ma *32obok nich?
jdigital
Dobry pomysł. Sprawdziłem, a rzeczywiście jest * 32 obok procesu. Jednak w rzeczywistym oknie polecenia propt ścieżka to system32 \ cmd.exe. Uhm ... Edycja: Czasami proces nie ma * 32, w którym to przypadku telnet działa dobrze. Tak więc pytanie, jak sądzę, brzmi: dlaczego czasami nazywa się 32bits cmd.exe i dlaczego 32bits cmd.exe wydaje się mieć ścieżkę system32 \ cmd.exe, w oknie konsoli
Sampaio
W procesie 32-bitowym system32jest odwzorowywany SysWOW64, więc nie można polegać na ścieżce system32\cmd.exebez znajomości rodzaju procesu, który ją wywołał. Jeśli chodzi o to, dlaczego wywoływany jest 32-bitowy program cmd.exe, wynika to z jego wywołania. Czy możesz podać więcej szczegółów?
jdigital
2
z 32-bitowego polecenia cmd można uruchomić, %SystemRoot%\Sysnative\telnetaby uzyskać 64-bitowy telnet
phuclv
2

Uświadom sobie, że ten post jest (bardzo!) Spóźniony, ale miał tylko te same problemy. Rozwiązano go również poprzez skopiowanie C:\windows\system32\en-us\telnet.exe.muido odpowiedniego folderu w syswow64. Mam nadzieję, że pomoże to komuś innemu w przyszłości.

dlinakra
źródło
Hej, dzięki za odpowiedź. Jeśli to zadziała, lepiej późno niż wcale! Nie mam już komputera, którego używałem i szczerze mówiąc nawet nie pamiętam, co wtedy robiłem (lub próbowałem zrobić). Być może tego pliku brakowało, gdy próbowałem skopiować. Dam ci +1, aby inni mogli to łatwo znaleźć.
Sampaio,
0

Zrobiłem bardzo prostą rzecz i wszystko działało dla mnie, po prostu skopiuj Telnet.exe z systemu32 i wklej go do SysWOW64 i uruchom cmd.exe, który podnieca się w katalogu SysWOW64 i wszystko działało idealnie .. mam nadzieję, że to zadziała. ...

Blackshine12
źródło
0

OBJAW W systemie Windows Vista i Windows 7 uruchomienie konfiguracji debugowania z platformą jako Cortex-A8 RTSM lub FVP może powodować następujący błąd: Windows nie może znaleźć „c: \ windows \ system32 \ telnet.exe PRZYCZYNA Debuger DS-5 używa funkcji telnet komputer na sesję debugowania przez połączenie szeregowe z RTSM i FVP. Ten błąd występuje, gdy próbujesz połączyć się z RTSM i FVP z debuggera, a klient Telnet jest wyłączony. Klient Telnet nie jest domyślnie włączony w systemie Windows Vista i Windows 7.

ROZWIĄZANIE Włącz klienta telnet na swoim komputerze i zrestartuj sesję debugowania. Aby włączyć klienta Telnet w systemie Windows Vista i Windows 7:

Otwórz Panel sterowania z menu Start systemu Windows.

Wybierz Programy.

W obszarze Programy i funkcje kliknij opcję Włącz lub wyłącz funkcje systemu Windows.

Z wyświetlonej listy zaznacz pole wyboru Klient Telnet, aby włączyć Telnet.

Kliknij przycisk OK, aby zamknąć okno dialogowe.

Nguyen Dang Tung
źródło
Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie. OP ma już zainstalowany telnet.
DavidPostill