Windows7 x64 で NIC 再起動

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

私の使っている PC は、まれに NIC に刺さっているケーブルを認識しなくなる。
対向の SW やケーブルを変更しても起こるので、PC 自体の問題だろうと思うのだが、原因はよく分からない。
発生頻度も数ヶ月に1回レベルなので、原因が掴みにくい。

それはそれとして、発生頻度が少ないので放置しているものの、長期間、その PC の前に座れない時に遠隔から操作しようとすると、この事象はとても怖い。
なので、被害を最小限に食い止めるため、こんな小細工を弄してみた。

タスクスケジューラで NIC を定期的に再起動する。

この問題が起こった時の解決方法は簡単で、NIC をネットワークデバイスの管理画面から無効/有効と再起動してやれば良い。
これをコマンドラインで実行するのは簡単で、devcon.exe という Windows 標準のコマンドラインを叩けば良い。

> devcon disable %HARDWARE_ID%
> devcon enable %HARDWARE_ID%

ここで、%HARDWARE_ID% は、devcon hwids =net などで表示されるお目当ての NIC のハードウェア ID のうち、一番長いもので良いらしい。
devcon.exe を使って NIC を無効化/有効化する - k3k1::log

Windows 7 x64 で devcon を使う

ところが、Windows 7 x64 ではこれが思い通りに動かない。
調べてみると、Windows 7 x64 用の devcon が標準でインストールされていないためで、Microsoft download center からもダウンロードできないため、どこかから調達する必要があるらしい。
"Disable failed No devices disabled" devcon.exe | How to disable devices from command prompt ~ Techytips

タスクスケジューラで実行

このコマンドを bat ファイルにして実行すると、権限不足でうまく行かない。
タスクスケジューラで実行する場合は、「最上位の特権で実行する」をチェックしておくと良い。