スピードとデュプレックスとアニキと大量の表組みと

先日、社内のネットワークにつながる端末の動作が異常に遅いとかいう事例がありました。
結構度々あるらしいのですが、原因の一つとして「ネットワークのネゴがダメ」という場合があります。


はい、わざと分かりにくく書いてみたいたずらっ子な私ですが、結局ハードウェア(イーサネットカードことNICやらHUBやらネットワークスイッチやら)のネットワーク速度の設定が不一致である、ということです。
NICのハード設定には100Full、100Half、10Full、10Half、Autoのような、SpeedとDuplex(リンク速度とDuplex)の設定があります。
ところが、LANケーブルでつなぐ両端、例えばイーサネットカードとネットワークスイッチの穴の一つで設定が食い違っていると、10Halfまで落ちたり、全く接続ができなくなったりすることがあるようです。

この設定、ネットワークスイッチの場合は普通にログインしてsh runすれば分かりますし、Linuxマスィンの場合はtelnetsshさえ起動していれば、ログインしてethtoolで調べられます。したがって、調べたいLANポートのハードを直接触りに行かなくとも、telnetssh環境のあるPCさえあれば、その場で調べられます。
ところがWindowsの場合。普通にGUIで見るにはネットワーク接続のプロパティを開き、構成→詳細設定で見るしかありません。またIPCONFIG /ALLではこの設定まで見ることは不可能ですし、他にSpeedとDuplexが調べられるようなコマンドは調べた限りありません。
では、Windows端末の設定を調べたい場合、いちいち現場へ赴き、見ていくしかないのでしょうか?


実は少なくとも、現場へ行かなくとも調べる方法があるようです。
必殺技ネットワァァァァァク・レディストリィィィィィィィィ!!!

ネットワークレジストリとかいうものがあるらしい

調べた結果、SpeedとDuplexの設定は、レジストリに書き込まれているそうです。
場所やキーの名前はハードウェア構成にもよると思いますが、「duplex」の文字列でレジストリ内を検索していけば、そのうち見つかると思います。*1
で、regeditを起動する訳ですが、regeditのメニューのファイルに、ネットワークレジストリへの接続なる項目があります。これの詳細設定でネットワーク上を検索して、調べたいWindowsマシンが出てこれば、わざわざ現場へ出て行かなくてもDuplex設定を調べることが可能です。
しかも編集することも可能みたいです・・・ってオイ!
この機能でリモート・デスクトップ許可できるじゃん。
やりたい放題じゃん。


・・・MS社員A氏によると、利便性とはトレードオフなんで許してだそうです。
それから、大量に端末がある件は、結局地道に調べるしかないのかね・・・。

*1:プリンタやSound関連の設定にもduplexの文字列がひっかかるはずなのでそれはムシ。今のPCの場合はHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}の以下のどっか。0000から順番に番号があります。この以下のどっかにduplexモードのキーと、近くのどこかにenumとかいう、そのキーの値として使える数字一覧みたいなものがあると思われます。