Como descarregar o arquivo de certificado do instalador via linha de comando?

1

Estou criando um script que baixará e instalará vários programas. Um desses programas depende de um driver virtual, que precisa que seu certificado seja importado para funcionar. Normalmente, o instalador faz isso para você na GUI e apenas exibe uma caixa de diálogo de confirmação perguntando se você confia nesse driver. No entanto, essa interrupção é inaceitável para o script que estou escrevendo.

Encontrei uma maneira de exportar o certificado por meio da GUI de propriedades do arquivo e posso importar esse arquivo com o script, permitindo que eu o instale sem interação com o usuário. No entanto, para implantar e automatizar totalmente esse script, também preciso exportar o arquivo de certificado do instalador por meio do script. Isso pode ser feito?

    
por MrDrMcCoy 27.09.2012 / 20:31

1 resposta

2

Todo o processo pode ser feito em powershell usando a classe X509Certificate disponível no .Net framework.

A primeira coisa que você precisa fazer é obter o arquivo cert do arquivo assinado. Isso é feito usando a função CreateFromCertFile. Apenas tome nota que a função só pode ter caminhos completos e não relativos.

Em seguida, você pode abrir o armazenamento de certificados no computador local e importar o certificado. Para gravar no armazenamento do computador local, isso precisa ser executado como administrador.

Add-Type -AssemblyName System.Security

# Create a new certificate extracted from the signed file.
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate]::CreateFromCertFile('c:\temp\SetupVirtualCloneDrive5450.exe')

# Open the Trusted Publishers cert store and add the certificate in.
$cert_store = New-Object System.Security.Cryptography.X509Certificates.X509Store -ArgumentList 'TrustedPublisher', 'LocalMachine' | ForEach-Object {

    $_.Open('ReadWrite')
    $_.Add($certificate)
    $_.Close()
}

FYI, usei esse método para instalar o VirtualBox Guest Additions que também tinha prompts de driver.

    
por 13.05.2013 / 15:53