W2K の telnet サービスを使う
XP のことは知らない。
Windows 2000 では Telnet サーバ機能を持っているが、 これはサービス(TlntSvr)として提供されており、かつ、 デフォルトでは起動していない。
標準の設定では、サービスを起動しただけでは 通常の unix の端末などから telnet 接続してもログインすることができない。 たぶん嫌がらせなので、この設定は変更する。 例によって Administrator 権限のあるユーザでログオンし、DOS 窓から設定を行う。
C:> tlntadmn (略) 3) レジストリの設定を表示/変更します ... (略) 7) NTLM (略) この値を変更しますか? [y/n]y NTLM [ 現在の値 = 2; 使用できる値は、0、1、2 のいずれかです ] :1 NTLM を 1 に設定しますか? [y/n]y
サービスの設定で自動起動にしておけば、再起動しても安心だ。 つまり、自動起動にする設定は tlntadmn ではできないということ。 「Telnet Server Admin」ではできないのか?サービスの起動/終了はできるくせに? 不愉快な話だ。
ちなみに、
0:クリアテキスト認証 1:NTLM認証失敗後クリアテキスト認証 2:NTLM認証のみ
というらしいが、なぜろくすっぽ使えもしないものがデフォルトなのかは謎である。 しかも、この変更をするだけなのに何度も何度も confirm されるのもうっとうしい。 まったく人を不愉快にさせるインタフェイスである。
Windows 2000 の telnet サービスは同時に2セッションまでしか張れないらしい。 意味の無い制限だ。
tlntadmn での設定が必要ということはコンソールに触れなければ設定ができないことを 意味するわけだが、リモートで設定を行うにはどうしたらいいのか? いろいろ調べた結果、レジストリを直接いじってしまえばサービスの開始設定くらいはできることがわかった。 レジストリを編集するには regedit を使えばいいのだが、 悪しき慣例によりこれも GUI が使える(コンソールにて対話操作が可能である)ことが 前提であり、遠隔から設定ができない。 そこで、Windows 2000 の CD に標準添付されている Windows 2000 Support Tools を使う。 これをインストールすると reg コマンドが手に入るので、これを用いて設定する。
reg add \\%MACHINE_NAME%\HKLM\SYSTEM\CurrentControlSet\Services\TlntSvr /v Start /t REG_DWORD /d 0x02 /f reg add \\%MACHINE_NAME%\HKLM\SOFTWARE\Microsoft\TelnetServer\1.0 /v NTLM /t REG_DWORD /d 0x01 /f
もちろん IPC$ は事前に通しておく必要がある。
telnet をクライアントとして利用する場合は、 デフォルトではもちろん SJIS な端末として動作するが、 実は EUC で動作させることもできる。Ctrl-] でエスケープして オプションを調べると、
Microsoft Telnet> set ? NTLM NTLM 認証を使用します。 LOCAL_ECHO ローカル エコーを使用します。 TERM x (x には ANSI、VT100、VT52 または VTNT が入ります) CODESET x (x には Shift JIS, Japanese EUC, JIS Kanji, JIS Kanji(78), DEC Kanji または NEC Kanji がはいります) CRLF CR と LF の両方を送信します。
けっこういろいろ対応していることがわかる。 ここで示されている通り、set codeset Japanese EUC とすることで それ以降、日本語 EUC な端末として動作するようになる。 この codeset の指定はどこかに記憶されるようだが、どこに記憶されるのかは不明。
- NTLM 認証
- Windows NT LAN Manager 認証