Установка - Импорт Сертификат PFX для разделения Персонального хранилища локальной учетной записи - Автоматизированный

Я переносил голову вокруг автоматизации способа выполнить эту задачу:

Мы развертываем изображения Windows Server 2008 R2 для наших клиентов. Мы используем PowerShell (версия 2), чтобы развернуть наше собственное программное обеспечение и внести различные другие изменения в системе перед поставкой. Этот процесс PowerShell выполняется в соответствии с учетной записью локального администратора, пока это не заканчивает и отключает учетную запись локального администратора.

Теперь, к проблеме - я пытаюсь установить.PFX клиентский сертификат хранилищу сертификатов ОТДЕЛЬНОГО ПОЛЬЗОВАТЕЛЯ CurrentUser\My. Давайте назовем того пользователя "SQL".

Прямо сейчас сертификат становится установленным под хранилищем сертификатов LocalMachine\My, но одна из наших групп разработчиков имеет проблемы на том положении и хотела бы копировать исходную установку.

Теперь, я знаю, как получить сделанный грязный путем добавления на шаге перезагрузки к нашему сценарию развертывания и выполнения этого при пользователе "SQL", но я хотел бы избежать, чтобы, поскольку он походит, был способ сделать это в то время как в соответствии с другой учетной записью. Вот абсолютный код, который мы используем теперь для установки сертификата хранилищу LocalMachine\My. Предположите, что $certPath является путем к .pfx, и $pfxPass является паролем .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()
}    
4
задан 2 February 2015 в 19:43
2 ответа

Я делаю то же самое для своих серверов, но я не использую чистый PowerShell:

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

Это просто запускает команду certutil под указанной учетной записью, вам необходимо загрузить psexec.exe ,

5
ответ дан 3 December 2019 в 03:17

В итоге я использовал Start-Process с -Credentials и бесплатный инструмент importpfx.exe. По сути, та же идея, что и @Mathias, и @Peter привел пример.

Спасибо вам обоим за вашу помощь. Это было намного проще, чем мне показалось в последние два дня исследований.

0
ответ дан 3 December 2019 в 03:17

Теги

Похожие вопросы