2013-05-01 7 views
4

Nous créons un script pour créer automatiquement un certificat. Nous sommes en mesure de franchir toutes les étapes, mais lorsque nous essayons d'importer le certificat dans le magasin, nous avons des problèmes. Le certificat est installé dans le WSUS -> Certificate Store mais la clé privée n'est pas associée. Si nous le faisons manuellement, cela fonctionne très bien.Comment importer un certificat en utilisant PowerShell

Le code suivant représente la section pour importer le certificat dans le magasin:

$cert = new-object system.security.cryptography.x509certificates.x509certificate2 c:\lup.crt 
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store WSUS, LocalMachine 
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) 
$store.Add($cert) 
$store.Close() 

Je suis toujours sur la courbe d'apprentissage de Powershell et l'ajout de certificats a rendu ce processus difficile. Qu'est-ce que je fais de mal qui ne permet pas d'associer la clé privée lorsque le certificat est importé dans le magasin wsus?


MISE À JOUR

J'ai donc mis à jour mon code avec ce que Neossian a suggéré et il fonctionne. Cependant, j'ai remarqué qu'il ne supprime pas la clé privée sur Enrollment Requests Je peux supprimer cela manuellement mais pourquoi n'est-il pas supprimé comme ce serait le cas si je devais importer le certificat manuellement?

Répondre

2

Essayez de lancer:

certutil -repairstore WSUS "SerialNumber" 

Lorsque le "SerialNumber" est le numéro de série du certificat importé.

+0

Cela a fonctionné, mais savez-vous pourquoi la réparation doit être exécutée ??? Si cela doit être exécuté à chaque fois que le code démarre, je devrai trouver un moyen de récupérer le numéro de série du certificat afin que la commande puisse être exécutée. – JMeterX

+0

Cela ne semble pas fonctionner, mais c'est le cas ... D'où vient la clé privée? – Lucas

Questions connexes