Pregunta

Al instalar un controlador firmado (es decir, con un .CAB firmado correctamente) en Windows 7 a través DPInst, a menos que sea un controlador firmado WHQL, no se puede instalar en silencio. Si ejecuta DPInst en el modo silencioso, se te indicará que confiar en el "editor". Si ejecuta DPInst en modo silencioso, sería un error con un código de error de firma relacionada con (algo así como 0x800b0109 - ver sus setupapi.app.log).

¿Fue útil?

Solución 2

La forma más sencilla de hacerlo es agregar el certificado de firma a los TrustedPublishers. Puede hacerlo mediante programación (la implementación de win32exception se deja como ejercicio para el lector):

#include <windows.h>
#include <wincrypt.h>
#include "win32exception.h"

void InstallTrustedPublisherCertificate(LPCTSTR CertificateFilePath)
{
    DWORD dwContentType;
    PCCERT_CONTEXT pCertContext = NULL;
    if (!CryptQueryObject(
            CERT_QUERY_OBJECT_FILE,
            CertificateFilePath,
            CERT_QUERY_CONTENT_FLAG_ALL,
            CERT_QUERY_FORMAT_FLAG_ALL,
            0,
            NULL,
            &dwContentType,
            NULL,
            NULL,
            NULL,
            (const void **)&pCertContext))
            throw win32exception("CryptQueryObject");

    if (dwContentType != CERT_QUERY_CONTENT_CERT)
        throw exception("Incorrect content type of crypto object.");

    __try
    {
        HCERTSTORE hCertStore = CertOpenStore(
            CERT_STORE_PROV_SYSTEM,
            0,
            0,
            CERT_STORE_OPEN_EXISTING_FLAG |
            CERT_SYSTEM_STORE_CURRENT_USER,
            _T("TrustedPublisher"));
        if (hCertStore == NULL)
            throw win32exception("CertOpenStore");

        __try
        {
            if (CertAddCertificateContextToStore(hCertStore, pCertContext, CERT_STORE_ADD_NEWER, NULL))
            {
                // Added certificate to TrustedPublisher store.
            }
            else
            {
                DWORD err = GetLastError();
                if (err == CRYPT_E_EXISTS)
                {
                    // Certificate already exists in TrustedPublisher store.
                }
                else
                    throw win32exception("CertAddCertificateContextToStore", err);
            }
        }
        __finally
        {
            CertCloseStore (hCertStore, 0);
        }
    }
    __finally
    {
        CertFreeCertificateContext(pCertContext);
    }
}

Otros consejos

Si bien la respuesta de Ilya es bueno, la solución en Windows 7 es aún más fácil. El comando de abajo implementa el certificado tanto para el usuario actual y el sistema de confianza almacenes de certificados editor. Se requiere privilegios administrativos y es proporcionado por Microsoft.

Para Windows 7

certutil.exe -addstore TrustedPublisher cert.cer

I verificó que esto funciona en Windows 7 de 64 bits para desplegar firmaron, pero no certificado por WHQL, los conductores -. Sin preguntar al usuario

Windows XP

Certificación WHQL

Parece que en XP usted todavía tiene que tener los controladores certificados por WHQL con el fin de evitar en las instrucciones de instalación.

Pre-Instalación de SPC en Windows XP

Para Windows XP tendrá que descargar las herramientas de administración de Windows Server 2003 de Microsoft y certutil.exe extracto y certadm.dll. A continuación, el comando anterior trabajo voluntad en XP también.

Paquete de herramientas de administración: http://www.microsoft. com / descarga / es / details.aspx? DisplayLang = es & id = 16770

Tenga en cuenta que el archivo msi extraído puede ser inspeccionado por 7-zip, por lo que no es necesario instalarlo para obtener el EXE y DLL que necesita.

Y la pregunta es? Si no está certificado por WHQL del controlador, no se puede instalar en silencio. Esta es una medida de seguridad de Windows.

Los conductores tienen que ir a través de certificación WHQL para evitar cualquier tipo de ONU-firmado ventanas emergentes.

Si está buscando cualquier terceros proveedores de servicios WHQLTesting háganoslo saber, estaremos encantados de ayudarle en este respecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top