為什麼無法從 Windows 8 命令提示字元啟動 telnet.exe?

為什麼無法從 Windows 8 命令提示字元啟動 telnet.exe?

我安裝了Windows遠端登入telnet.exeWindows 8 企業版(RTM - 全新安裝)上的用戶端 ( ) 透過開啟或關閉 Windows 功能。但是我似乎無法從管理員命令提示字元啟動它。

我對驅動器進行了全面搜索C:,可以看到可執行檔駐留在C:\Windows\System32

遠端登入搜尋結果

我還可以在資源管理器中看到可執行檔:

在資源管理器中遠端登入

在上述兩種情況下,我都可以透過雙擊啟動客戶端,但由於某種原因,它在我的管理員cmd.exe命令提示字元(或 PowerShell)中不可見:

在cmd中運行telnet結果

另外,正如您在上面的螢幕截圖中看到的,它在我的環境變數C:\Windows\system32中存在且正確。PATH其他系統可執行檔啟動得很好(tasklist.exe例如)。

由於冗長的原因無法解釋,我無法使用第三方 telnet 用戶端,例如 PuTTY。

誰能解釋為什麼會發生這種情況?

我也嘗試過重新啟動,但這也沒有幫助。

答案1

這是因為檔案系統重定向器。 32 位元進程看不到真正的資料夾,但會取得替換Windows\System32的內容Windows\SysWOW64

要使其在 32 位元 cmd.exe 或您可以運行的任何 32 位元 shell 上運行

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

這很可能是 Windows 資源管理器的副作用PendingRenames,Windows 資源管理器太新了,它可以確保它向您顯示正在處理的重命名int 帳戶的最新狀態,而命令提示字元太舊了,它本機讀取驅動器,因此還看不到重新命名的檔案。通常它們首先安裝到臨時解壓縮位置,然後重新命名為實際位置。

我的猜測是,您已經完成了Turn Windows features on or off.沒有重新啟動電腦的操作,因此它仍然需要透過執行實際的重命名來完成功能的安裝,以便您可以實際從命令提示字元中使用 telnet。

因此,簡單的“您是否嘗試過再次打開和關閉它?”方法應該可以解決這個問題。

答案3

我終於弄清楚這件事的真相了。我已經安裝了維啟動在對新的 Windows 8 感到越來越沮喪之後現代使用者介面透過遠端桌面連線使用它特別棘手。

我使用 ViStart 來進行我平常的肌肉記憶開始->運行->cmd.exe就像我在 Windows 7 上一樣。當然,32位元的這個命令提示字元是看不到的,telnet.exe因為它是64位元的exe等等。

從那時起,我就放棄了 ViStart,因為它是一個壞主意,並放棄了自己,轉而學習導航現代 UI。

相關內容