今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

Windows2000のtelnetサービス

Windows2000 には telnet サービスがついている。だけど、単に telnet サービスを起動しても、普通の telnet クライアントでは接続できない。それは、Windowstelnet サービスは、デフォルトで NTML 認証を行っているから。これを普通の telnet クライアントで接続できるようにするには、コントロールパネルの管理ツールにあるTelnetサーバー管理ツールで設定を変更する。Telnetサーバー管理ツールを選択するとコマンドプロンプトが起動する。

Microsoft (R) Windows 2000 (TM) (Build 2195)
Telnet Server Admin (Build 5.00.99201.1)

次のオプションから 1 つを選択してください:


0) このアプリケーションを終了します
1) 現在のユーザーの一覧を表示します
2) ユーザーのセッションを終了します ...
3) レジストリの設定を表示/変更します ...
4) サービスを開始します
5) サービスを停止します

[0 - 5] のいずれかの番号を入力してオプションを選択してください: 

ここで「3) レジストリの設定を表示/変更します ...」を選択する。

次のオプションから 1 つを選択してください:

0) このメニューを終了します
1) AllowTrustedDomain
2) AltKeyMapping
3) DefaultDomain
4) DefaultShell
5) LoginScript
6) MaxFailedLogins
7) NTLM
8) TelnetPort
[0 - 8] のいずれかの番号を入力してオプションを選択してください:

ここで「7) NTLM」を選択する。

NTLM の現在の値 = 2
この値を変更しますか? [y/n]

ここで「y」を入力する。

NTLM [ 現在の値 = 2; 使用できる値は 0、1、2 のいずれかです ] :

ここで「0」を入力する。確認してくるので、「y」を入力する。

NTLM [ 現在の値 = 2; 使用できる値は 0、1、2 のいずれかです ] :0
NTLM を 0 に設定しますか? [y/n]y

Telnet サービスを再起動すると新しい設定が適用されます

すると、普通の telnet クライアントで接続できるようになる。

C:\>telnet 192.168.0.100
Trying 192.168.0.100...
Connected to 192.168.0.100.
Escape character is '^]'.
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99206.1
login:

でも、普通の telnet クライアントで接続できるようにはなるんだけど、文字コードの違いが原因なのか、表示が変。これは、cygwintelnet で接続した例。

* = = = = = = = = = = = = = = = = = = = =6=0=D=0=-=B=B=7=5= = = = = = = = = = ==
W=e=l=c=o=m=e= =t=o= =M=i=c=r=o=s=o=f=t= =T=e=l n e t   S e r v e r .
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ==
C=:=\=>= = = = = = = = = = = = = = = = = = = =
C : \ >
C : ver

M i c r o s o f t   W i n d o w s   2 0 0 0   [ V e r s i o n   5 . 0 0 . 2 1 95
 ]
C : \ >

Windows 付属の telnet クライアント(C:\Winnt\system32\telnet.exe)ならきちんと表示する。

*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================
C:\>
C:\>
C:\>ver

Microsoft Windows 2000 [Version 5.00.2195]

C:\>

TeraTermLinux から telnet でアクセスして試したところ、表示が変になるのは cygwintelnet だけだってことが分かった。うーむ、謎だ。
つか、Ethereal でパケットダンプしたところ、Windows telnet サーバは、1文字出力するごとに「0x00」を出力していることが分かった。例えば、「Welcome」の場合は、

57 00 65 00 6c 00 63 00 6f 00 6d 00 65 00

というデータを Windows telnet サーバが送信している。なんでそんなことするんだぁ?