Windows 7でドライバーのアンインストールと再インストールを自動化する必要があります。これを手動で行うプロセスは、次のとおりです。
これらの手順を定期的に実行する必要があるため、自動化する方法を見つけたいと思います。
私はこれらの2つのコマンドラインツールが関連しているように見えることを発見しましたが、どちらも私が望んでいることを正確に実行していないようです。
wmic
# Outputs a list. I can parse this to find the index of the device.
wmic nic get name, index
wmic path win32_networkadapter where index=<from above> call disable
wmic path win32_networkadapter where index=<from above> call enable
これらのコマンドには、想定されていることをすべて実行したことを示唆する出力がありますが、ドライバーのアンインストールと再インストールと同じ効果はありません。
pnputil
pnputil -e
リストを出力します。デバイスマネージャーで使用されているのと同じ人間が読める形式の名前が含まれていないようです(上記のwmicで使用されていました)が、このデバイスがリストされているのがわかります。
Published name : oem186.inf
Driver package provider : Intel
Class : Network adapters
Driver date and version : 08/01/2013 16.1.3.1
Signer name : Microsoft Windows Hardware Compatibility Publisher
しかし、これにはいくつか問題があります。 GUIデバイスマネージャーに移動し、[ドライバー]> [プロパティ]> [ドライバー]タブ> [ドライバーの詳細]を右クリックすると、次のファイルが一覧表示されます。
C:\windows\system32\DRIVERS\Netwfw02.dat
C:\windows\system32\DRIVERS\NETwsw02.sys
C:\windows\system32\drivers\vwifibus.sys
pnputil
がそれを呼んだ名前はどれもありません。さらに、[詳細]タブ> [含まれるInfs]はそれをnetvwifibus.inf
と呼びます-これもpnputil
がそれを呼ぶものではありません。
pnputil
のもう1つの問題は、アンインストールコマンドがないように見えることです。それが持っているのはpnputil -d
だけで、パッケージを削除するためのものです(パッケージとは何ですか?それはドライバーとどう違うのですか?それらは同じですか?)私の手動の指示は明示的にドライバーを削除することではなく、それをアンインストールします。間違ったものになってしまった場合に元に戻す簡単な方法がわからないため、この削除オプションを使用することさえ躊躇しています。
要約
wmic
はドライバーを無効または有効にすることができますが、それらをアンインストールして再インストールしたいと思います。
pnputil
はパッケージを追加および削除できます。 Word deleteは、簡単にバックアップまたはロールバックする方法がないように思われるので、私を怖がらせます。そのため、私は試していません。また、とにかくパッケージとは何ですか?ドライバーとの関係は…同じですか?
お使いのデバイスはPnP(プラグアンドプレイ)デバイスです-これは、Windowsがこのデバイスに使用するドライバーを自動的に選択することを意味します。 見た目が1つ ドライバーの場合は、ローカルコンピューター上のドライバーストアです。ドライバストアには、ドライバパッケージが含まれています。 1つのデバイスに複数のパッケージが存在する可能性があり、1つのパッケージに複数のデバイスのドライバーを含めることができます。デバイスにドライバーが割り当てられていない場合、PnPマネージャーは互換性のあるドライバーを見つけます ランク付け 、最適なドライバーを選択し、このドライバーをインストールします。
ドライバーを手動でダウンロードしてインストールすると、そのコピーがパッケージとしてドライバーストアに配置されます。
ドライバーを手動でアンインストールし、デバイスマネージャーで削除オプションを選択すると、対応するパッケージもドライバーストアから削除されます。
あなたが言及した正確なステップを自動化するために、両方のwmic disable
およびpnputil -d
はあなたにとって良くありません。 pnputil
はパッケージを追加/削除するだけで、PnPManagerがインストールするものを選択します。
ドライバをアンインストールしたい(ただし、そのパッケージを削除してPnPの再スキャンを強制しないでください)。
Windowsデバイスコンソール(Devcon.exe) を使用してみます。その remove
コマンドは、デバイスツリーからデバイスを削除し、パッケージをそのままにしておく必要があります-手順4と5と同じです。 rescan
を使用するステップ6をトリガーできます。devcon
は Windows Driver Kit にあります。
パブリックデバイスインストール関数 を使用してプログラムを作成することもできます。