Windows Vista以降のドライバのアンインストール

Windows Vista以降のOSではDriverStore(C:\Windows\System32\DriverStore)という特殊なフォルダにインストールしたドライバのコピーが保管されており、ハードウェアが接続したときにこのフォルダからドライバが検索されインストールされます。そのためdrivers(C:\Windows\System32\drivers)からファイルを削除したり、デバイスマネージャからドライバをアンインストールしただけでは、再起動時にドライバが再インストールされてしまいます。コンピューターに一度インストールしたドライバを完全に削除するには、pnputilコマンドを使ってDriverStoreからドライバを削除する必要があります。
まず最初に管理者権限でコマンドプロンプトを開き、以下のコマンドを実行します。

pnputil -e

そうすると以下のように現在DriveStoreに登録されているドライバの一覧が表示されます。
画面に表示される一覧からアンインストールするドライバを特定したら、以下のようにコマンドを入力してドライバファイルを削除します。

pnputil -d oem3.inf

デバイスマネージャ上で使用されているドライバは削除できないので、事前にデバイスマネージャもしくはdevcon.exeを使用してドライバをアンインストールするのを忘れないでください。

コマンドラインからドライバをインストールする

コマンドラインからデバイスドライバのインストール/アンインストールを行うには二つの方法があります。ひとつはrundll32を呼び出してINFファイルのDefaultInstallセクションを実行する方法。もうひとつはマイクロソフトが無償で配布しているコマンドラインからデバイスマネージャ相当の事を行うツール(devcon)を使用する方法です。

rundll32を使用する

インストール:
rundll32.exe  syssetup,SetupInfObjectInstallAction DefaultInstall 128 sample.inf
アンインストール:
rundll32.exe  syssetup,SetupInfObjectInstallAction DefaultUninstall 128 sample.inf

rundll32.exeのコマンドラインパラメータに上記のように指定します。128という数字はインストール動作を指定するオプションです。インストール後に再起動したい場合には129などと指定します。

モード意味
0システムが用意した .inf ファイル。
128.inf ファイルがあるディレクトリを指定。
+0コンピュータを再起動しない。
+1コンピュータを再起動する。
+2ユーザに確認をとってから再起動する。
+3必要があればユーザの同意を得ずに再起動する。
+4必要があればユーザに確認をとってから再起動する。

残念ながら、この方法はすべてのドライバに使えるわけではありません。DefaultInstallセクションが記述されているINFファイルだけに使えます。DefaultInstallが記述されてない場合にはエラーになります。
アンインストールを行いたい場合には、同じようにDefaultUninstallセクションを呼び出します。

devconを使用したインストール

devconはMicrosoftが配布するコマンドラインツールです。こちらのURLからダウンロードできます。

インストール:
devcon.exe  install sample.inf
devcon.exe  update sample.inf
アンインストール:
devcon.exe  remove sample.inf 

デバイス名に”&”などが含まれる場合には、デバイス名をダブルクォーテーションで囲む必要があります。
レガシーデバイスの場合にはinstallコマンドで、PnPデバイスの場合にはデバイスを装着した状態でupdateコマンドを使用します。