プログラミング言語によるドライバーのインストール

プログラミング言語によるドライバーのインストール

ハードウェア コンポーネント A を管理する X というドライバーがあります。そのドライブを削除し、コンポーネント A も管理する Y というドライブに置き換えたいと思います。

これまで、.NET Framework 6.0、C# プログラミング言語、および PNPU​​til.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

出典:

関連情報