Instalación de controladores mediante lenguaje de programación

Instalación de controladores mediante lenguaje de programación

Tengo un controlador llamado X que administra un componente de hardware A. Me gustaría quitar esa unidad y reemplazarla con una llamada Y que también administra el componente A.

Hasta ahora he estado usando .NET Framework 6.0, lenguaje de programación C#, junto con PNPUtil.exe para instalar el controlador, pero creo que mi método es incorrecto porque acabo de hacer lo siguiente:

ProcessStartInfo psi = new ProcessStartInfo
                {
                    FileName = "PnPUtil.exe",
                    Arguments = $"-i -a \"{driverFile}\"",
                    UseShellExecute = false,
                    CreateNoWindow = true,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                };

Esto es solo instalación y el dispositivo en la consola dice que está instalado, pero cuando entro en Administración de dispositivos y busco dispositivo por controlador no encuentro mi controlador Y. Busco una respuesta para demostrar o señalar un tutorial sobre cómo hacerlo. esto y si PowerShell puede replicarlo también. Mi sistema operativo es Windows 11.

Respuesta1

Usted instala un controlador, pero si se usa para un dispositivo depende de la definición del controlador en su .infarchivo.

Tenga en cuenta que si instala un controlador anterior, Windows puede actualizarlo automáticamente a una versión más nueva. Para bloquear esa actualización, consulte esta respuesta.

El comando de Windows para instalar controladores es PnPUtil, usando el comando:

pnputil -i -a <driverinf>

Si el INF a instalar tiene una DefaultInstallsección también se puede instalar con este comando:

rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,,1

Si una DefaultInstallsección no está presente, entonces necesita encontrar a qué sección de instalación llamar usando el comando:

rundll32 advpack.dll,LaunchINFSection <PathTo>\name.inf,<InstallSection>,1

Fuentes:

información relacionada