
ハードウェア コンポーネント A を管理する X というドライバーがあります。そのドライブを削除し、コンポーネント A も管理する Y というドライブに置き換えたいと思います。
これまで、.NET Framework 6.0、C# プログラミング言語、および PNPUtil.exe を使用してドライバーをインストールしてきましたが、次の操作を行っていたため、方法が間違っていると思います。
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "PnPUtil.exe",
Arguments = $"-i -a \"{driverFile}\"",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
};
これは単なるインストールであり、コンソールのデバイスはインストールされたと表示されますが、デバイス管理に移動してドライバーでデバイスを検索すると、ドライバー Y が見つかりません。これを行う方法と、PowerShell でもこれを再現できるかどうかを示す回答またはチュートリアルを探しています。私の OS は Windows 11 です。
答え1
ドライバーをインストールしますが、それがデバイスに使用されるかどうかは、その.inf
ファイル内のドライバーの定義によって決まります。
古いドライバをインストールすると、Windowsが自動的に新しいバージョンに更新することがあります。更新をブロックするには、 この答え。
ドライバーをインストールするためのWindowsコマンドは PnPユーティリティ次のコマンドを使用します:
pnputil -i -a <driverinf>
インストールする INF にDefaultInstall
セクションがある場合は、次のコマンドでインストールすることもできます。
rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,,1
セクションが存在しない場合はDefaultInstall
、代わりに次のコマンドを使用して、呼び出す install-section を見つける必要があります。
rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,<InstallSection>,1
出典: