経緯
Sysprepでマスタ配信後、ドライバをインストールするとエラーのある項目がある。
よくよく見てみると、どうやら互換性のないデバイスドライバが当たっているらしい。
適切なデバイスドライバを当てるために、ドライバを削除する。
デバイス マネージャでの操作
ドライバの更新をしたらなんか解決した。
あとデバイスをアンインストールしてリロードしたらなんか解決した。
自動化する
マスタ展開したPC1台1台にデバイスマネージャでポチポチするのは地獄なので自動化する。
ドライバの更新はオンラインが前提であるため、後者のデバイスのアンインストールを行う方針で行く。
devcon.exeを利用する。
複数のドライバが当たっている際の考慮
確認したところ、ドライバが2種類当たっており、互換性のないバージョンのドライバが適用されているように見えた。
適切なドライバは確保しているため、ドライバは全部抹消して良い前提とする。
手順
ハードウェアIDを調べる
デバイスマネージャで調べます
デバイスドライバのファイルを調べる
なんかよくわからないが削除時にはoem{enum}.inf
って指定するらしい。それを特定します。
.\devcon driverfiles {HardWareID}
デバイスを削除する
先にデバイスを削除しないとドライバを消せないっぽい。(一応forceオプションもあります)
.\devcon remove {HardWareID}
デバイスドライバのファイルを削除する
.\devcon dp_delete {DriverFile}
Powershell
delete_drivers.ps1
$HWID = "ACPI\VEN_XXXX&DEV_XXXX"
$targ = .\devcon driverfiles $HWID
.\devcon remove $HWID
$reg = new-object regex("oem.*?\.inf")
$reg.Matches($targ) | %{.\devcon dp_delete $_.value}
最後に
適切なドライバをインストールする。エラーが無くなってHappy。