今週は新PCを組んでソフトのインストールをし、その合間に友人のPCの面倒も見つつ、PC設定で明け暮れてた訳なのですが、その設定で大きくつまずき数時間を無駄にしたトラブルがあったんで、ちょっと書いてみようかと。
要点に気付いてみればそう難しい問題でもなかったんですが、ネットを相当探しても解決方法が載っておらず(調べきれなかっただけかもしれないけど)、思いつきでやった設定が功を奏した形で解決と相成りました。…では、その過程を。
問題自体はよくある話。「ネットワークのワークグループでPCが見えない(自PCを含む)」というものだ。自宅では複数台のPCをLAN接続しており、それぞれでデータのやり取りをしている。今回はセカンドマシンにXPをインストールし、それをネットワークに参加させたのだった。既にメインマシンもXPをインストールしていたので、2台目のXPマシンということになる。
必要なツールなどをLAN経由でコピーし、設定を進める。そう、この時点ではLAN経由で他のPCが見えていたし、アクセスも問題なかった。それが問題解決に繋がるヒントとなるのだが、同時に問題を複雑にした点でもあった。
一通りのカスタマイズをすませて、再びネットワーク上のPCを見ようとしたとき(しばらくネットワーク上のPCにアクセスしていなかった)。やけに「Microsoft Windows Network」から、ワークグループ一覧を表示するのが遅いことに気付いた。こういう場合はネットワークでエラーが起こっている可能性がある。以前友人のPCを預かって作業していたときに同様の経験があり、そのときもPCが一切見えなかったからだ。ただ、IPアドレスを直接指定してやることで共有フォルダにはアクセスできたため、その時はそれで急場をしのいだのだが。
今回もそのときと同様の症状。IPアドレスではアクセスできるけどワークグループでは見えない。正確にはワークグループにアクセスできない。アクセスしようとすると、
「XXX(ワークグループ名) にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。このワークグループのサーバー一覧を現在、利用できません」
というエラーメッセージが出る。他人のPCを一時的に預かって作業しているときならまだしも、日常的に使うLAN環境で他のPCが見えないと不便きわまりない。そもそもプリンターも共有できないし。ということで、トラブルシューティングを開始した。
まずは別途インストールしたファイアーウォールを停止。……駄目。
ネットワークプロトコルのチェック。……問題なし。
NetBIOS over TCP/IPの設定。……有効になってる。
ネットワークに関係しそうなソフトを停止。……繋がらない。
……
ウキー!! なんでじゃ《゜Д゜》ゴラァァァァァァァァァァァァア!! 俺が何をしたっちゅーんじゃー!! ヌッコロスぞ《゜Д゜》ゴラァァァァァァァァァァァァア!!
………
と、ひとしきりブチギレたところで、基本的なところから間違っているのかもしれないと思い、検索して見つかった下記のFAQページを全てチェックしていくことにする。
http://homepage2.nifty.com/winfaq/networkchecklist.html
……数時間経過……
……ダメだった。orz
相変わらずIPアドレス直ならアクセスできるのに、ワークグループは一切見えない。ユーザーアカウントの設定も関係なかったし、共有名・フォルダ名は「Test」みたいな名前にしているんだから、名前が悪さをしているわけじゃない。ってゆーかXPをインストールしたばかりの時は見えてたんだし、そもそも設定面に不備はなかったはず。サービスもチェックしてみたが、共有に関係のあるサービス「Computer Browser」は自動起動するようになっていた。ただ、何故か停止していたので、再度起動させてチェックしたものの、やはりPCは見えず。
あーもう何がなんだか。
……と、ここで眠気に耐えられなくなって寝た。
後から考えれば、この時点で自動起動していたはずの「Computer Browser」サービスが、なぜ何もしないのに停止していたかをよく調べれば、問題解決も早かったのだが。眠気に負けてそこまで調べなかった自分が情けない。
翌日起床して、何となく思い立ちWindows 2000を入れたPCを起動してみる。つまり、XPマシン2台を含めて計3台起動している状態だ。そうすると、全てのPCがワークグループ上に見えている。アクセスしても問題はない。ここから考えられることはといえば、やはりサービス。2000が間に挟まればアクセスできるというのなら、何かしらのサービスが起動していないために、XPだけだと接続できない可能性が高い。
「Computer Browser」サービスは自動起動する設定になっているものの、やはり停止状態になっている。システムログを追ってみたら、
「Computer Browser は次のエラーで終了しました: タイムアウト期間が経過したため、この操作は終了しました。」
というエラーで停止しているようだ。「警告」に属するエラーなので、自然停止というよりはタイムアウト(時間切れ) を起こす何らかの要因があって停止したと見るのが自然。
ではその原因は何か。タイムアウトする原因と言えば、ファイアーウォールでのパケットフィルタリングがまず頭に浮かぶ。しかしこれを停止してもXPだけではアクセスできなかったし、2000を立ち上げればファイアーウォールがあっても問題なかったことから、選択肢から外れる。
次に考えられるのは、自分のPCの構成に関わる問題だ。自宅PCは全てLANカードを2枚差ししており、1枚がルーターに、もう1枚がギガビットハブに繋がっている。共有はギガビットハブを介して行われ、ルーターに繋がっているLANカード側でのファイル共有はできないように設定していた。ここが問題なのではないかと思われたのだ。
この形、確かにそれぞれ独立したネットワークを構築しているだけだが、LANカードを2枚差しして使うようなネットワーク利用法といえば、インターネット接続の共有機能がある。もしかしたら、XPではこのようなネットワークの利用をするときにでも(ルーター的な役割を与えなくても)、それに関わるサービスを有効にする必要があるのではないか。
そこで、Windows標準のファイアーウォールは使わないし、インターネット接続の共有もしないから、という理由でオフにしていた「Windows Firewall/Internet Connection Sharing (ICS)」サービスを起動してみる。
……見えるようになったよ。orz
今までは2000をメインに使ってて、特にサービスをいじらなくても問題なく見えていたから、このサービスが鍵だとは思わなかった……。セキュリティとパフォーマンスアップのために、不要なサービスを色々切っていたのが仇となった形だ。しかし2000の方でも不要と思われるサービスはかなり停止してるんだが、問題がなかったのは何故なんだか。他の重要なサービスに含まれているんだろうかねぇ。
あと気になるのは、友人のPCは1枚しかLANカード積んでないんだけど、それでもPCが見えなかったのは何故なのか、という点。LANカード2枚差しのPCがLAN内に1台でもあったら、その2枚差しPC上で「Windows Firewall/Internet Connection Sharing (ICS)」サービスを動かさないとダメって事なのか…。この辺りはまた他人のPC修理を引き受けたときにでも検証してみよう(笑)。(覚えてたら)
と、まあ色々とあったけれども、こうして問題は解決したのでありました。くそう、はじめは問題なかったから、ついつい後からインストールしたファイアーウォールやソフトにばかり注意がいってしまった…。途中でいじったサービスの有効・無効の設定を全てデフォルトに戻すとかすれば解決は早かったのに…。
ちなみに上記「Computer Browser」サービスと、「Windows Firewall/Internet Connection Sharing (ICS)」サービスは、どちらともLANに繋がっているPCのうち、1台でも有効にしておけばOK(全PCがLANカード2枚差しな当方の場合)。「Computer Browser」はマスタブラウザ関係のサービスだから、1台さえ有効になっていれば問題ないし、「Windows Firewall/Internet Connection Sharing (ICS)」サービスも、1台が名前のやり取りを管理できれば問題ないんだろう。
個人的備忘録と友人用にメモ。アリスの館7、発売前日に届いたのに放置中……。アリスソフト ユーザークラブの会報によると、近々ユーザークラブの改変を行うようで、時代の流れを感じるなぁ。10年近く会員でいただけに今後も有料会員でいつづけるだろうけど(有料会員制が残る限りは)、大手とはいえ常に変革意識を持っていないとダメ、って姿勢が見えて個人的には好印象。一般の大企業病にかかった会社や官公庁に見習って欲しいですな。
12/17
Windows XPのみ(2000を含まない) の環境下で
- 全PCがLANカードを2枚差ししている
- 片方のLANカードでは、ファイル共有の設定を無効にしている*1
とき、ワークグループにアクセスするためには、
- 「Computer Browser」サービス
- 「Windows Firewall/Internet Connection Sharing (ICS)」サービス*2
の両サービスを、そのLANに繋がっているPCのうち、少なくとも1台で起動させておく必要がある。なお、今回のテストはXP SP2のみを用いてのテストなので、SP1環境では違った結果になるかもしれない。
*1:これが今回影響していたかどうかは未検証
*2:SP2の場合。SP1の場合は「Internet Connection Firewall(ICF)/Internet Connection Sharing(ICS)」というサービス名になる