ある日Windows7のローカルセキュリティポリシーのWindows Firewall に関する項目を触っていると、Windows Firewall が起動しなくなった。
どうせ無効にしていたので起動しないこと自体は別にどうでもいいのだが、なぜかその影響でLAN内の他PCからの要求を全てシャットアウトするようになってしまった。
とりあえず内部的にどんなエラーが出ているかを調査。
まずは、サービスを開始させたときのエラー。
ローカルコンピューターでwindows firewallを開始できません。詳細については、システムイベントログを確認してください。これがmicrosoft以外のサービスである場合はサービスの製造元に問い合わせて固有のエラーコード87を参照してください。
んー、トンチンカンなエラーメッセージ。
次にイベントビューアからログをあさってみたところ見つけたエラー。
Windows Firewall サービスは、サービス固有エラー パラメーターが間違っています。 で終了しました。
Windows ファイアウォールで、新しいセキュリティ ポリシーを解析できませんでした。Windows ファイアウォールでは、現在のポリシーが引き続き適用されます。
エラー コード: 2147942487
ふむふむ。推測するに、Windows Firewall の設定はレジストリに保存されていて、その設定が矛盾しているか壊れているかなんだかで起動できていないっぽい。
このエラーメッセージを元にGoogle先生に聞いてみても、現象はあれど解決したものが見つからなかった。
そういえば、ローカルセキュリティポリシーの設定時に固定IPを入力したという事を思い出した。
[Win]+[R] -> regedt32 でレジストリエディタ起動。
入力した固定IPを検索キーにしてローラー検索。
おおっ!!
予想通り Windows Firewall のレジストリ設定にぶつかった。
うちの環境では以下のキーがヒットした(一部伏せ時)。
・[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group
Policy
Objects\{AAAAAAAAAA}Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall]
・[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group
Policy
Objects\{BBBBBBBBBB}Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall]
・[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group
Policy
Objects\{CCCCCCCCCC}Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall]
・[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group
Policy
Objects\{DDDDDDDDDD}Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall]
・[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall]
エクスポートしておいて取込直せば失敗しても大丈夫ってことで、上記のキーをそれぞれエクスポートしてごっそり削除。
サービスから Windows Firewall を起動してみると。。。
おおおおっ!!
起動したっ!!
ちゃんとLAN内の他PCからアクセスしてみても接続を拒否られなくなっていた。
解決!!
どこにも解決の記事がなかったので相当ぶりにブログを更新してみた次第です。
※レジストリを触るのでお約束として一応自己責任で。
※作業前に削除するキーのエクスポートとシステム復元ポイントの作成は忘れずに。