Install - Importar certificado PFX para separar o armazenamento pessoal da conta local - Automated

4

Estou pensando em automatizar uma maneira de executar essa tarefa:

Implementamos imagens do Windows Server 2008 R2 para nossos clientes. Usamos o PowerShell (versão 2) para implantar nosso software proprietário e fazer várias outras alterações no sistema antes do envio. Este processo do PowerShell é executado sob a conta de Administrador local até que ele conclua e desabilite a conta de Administrador local.

Agora, para o problema - estou tentando instalar um certificado de cliente .PFX em um repositório de certificados CurrentUser \ My de um usuário SEPARADO. Vamos chamar esse usuário "SQL".

Neste momento, o certificado está sendo instalado no armazenamento de certificados LocalMachine \ My, mas uma de nossas equipes de desenvolvimento tem preocupações com essa posição e gostaria de replicar a configuração original.

Agora, eu sei como acabar com isso adicionando um passo de reinicialização ao nosso script de implantação e tendo isso executado sob o usuário "SQL", mas eu gostaria de evitar isso, pois parece que tem que haver um maneira de fazer isso enquanto estiver sob outra conta. Aqui está o código básico que estamos usando agora para instalar o certificado na loja LocalMachine \ My. Assuma que $ certPath é o caminho para o .pfx e $ pfxPass é a senha do .pfx.

function Import-PfxCertificate {
param([string] $certPath, [string]$pfxPass)

$pfx = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$pfx.Import([string]$certPath, [string]$pfxPass, "Exportable,PersistKeySet")

$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "LocalMachine")
$store.open("MaxAllowed")
$store.add($pfx)
$store.close()
}    
    
por The_Gribbler 02.02.2015 / 18:43

2 respostas

5

Eu faço uma coisa semelhante para meus servidores, mas não estou usando o PowerShell puro:

psexec.exe -accepteula -u sql -p sqlspassword certutil.exe -p certpassword -importPFX cert.pfx

Isso apenas executa o comando certutil na conta especificada, você precisa fazer download do psexec.exe ,

    
por 02.02.2015 / 19:42
0

Acabei usando o Start-Process com -Credentials e a ferramenta free importpfx.exe. Basicamente, a mesma ideia que @Mathias declarou e @Peter deu um exemplo.

Obrigado a ambos pela sua ajuda. Isso foi muito mais fácil do que os últimos dois dias de pesquisa me levaram a acreditar.

    
por 02.02.2015 / 20:02