3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

ドライバサービスを起動しないようにする

とあるWindowsPCで、「PCAMPR5 NDIS Protocol Driver サービスは次のエラーのため開始できませんでした: 指定されたパスが見つかりません。」というエラーがイベントログに大量に出てました。

どうやらLAN関係のドライバをいれてアンインストールしたらしいのですが、インストーラの出来が悪いようでドライバが残ってしまってしまってるようです。

ググッた結果 PCAMPR5 のサービスを削除すればいいとあったので、下記コマンドで削除を試みます。

sc delete PCAMPR5

これで、レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PCAMPR5 を見たら消えてたんでやれやれと思い再起動をかけるとまたイベントログに同じエラーが。。。

レジストリを見たところ消えていたキーが復活してます。。

なぜかは不明です。。

レジストリから直接消してもリブートするとまた復活してしまいます。

仕方ないので消すのは諦めこのサービスが起動しないように設定することにしました。

sc コマンドを使いサービスの構成情報を表示します。

sc qc PCAMPR5

TYPE :1 KERNEL_DRIVER

START_TYPE :3 DEMAND_START

....

START_TYPE :3 DEMAND_START というのは、MSサポート:Windows でカーネル モードのフィルタ ドライバを一時的に無効にする方法によると、ドライバまたはサービスを要求に応じて起動する必要があります。という意味だそうです。

上記MSページにあるとおり、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PCAMPR5 の Start の値を 4 つまり、ドライバまたはサービスの読み取りや初期化は行われません。 にして再起動してみました。

するとエラーがイベントログに出ていません。どうやらこれでサービスの停止が上手くいったようです。

参考:

Tamutamu: PCAMPR5 と WNNDIS5

@IT:強化されたコマンドライン・ツール(前編)

sc:コマンドプロンプトを使いこなそう!

SCコマンド - Astarisk Works Wiki