Question Liste des certificats personnels installés en ligne de commande


J'utilise quelques sites Web sécurisés qui nécessitent l'installation d'un certificat PFX pour y accéder. J'ai plusieurs ordinateurs sur lesquels je fais cela et j'ai besoin d'un moyen rapide de déterminer ceux dans lesquels j'ai encore besoin d'installer le certificat.

Existe-t-il un moyen de répertorier tous les certificats du magasin personnel à partir de la ligne de commande? Je peux exécuter la commande à distance, mais je ne connais aucune méthode pour les répertorier.

"Comment puis-je obtenir une liste des certificats installés sous Windows?"est une question similaire mais je recherche une solution spécifique à la ligne de commande. Les réponses impliquent toutes l'utilisation de l'interface graphique ou de PowerShell.

enter image description here


4
2017-12-19 18:38


origine


Quel système d'exploitation utilisez-vous? - EBGreen
J'utilise Windows 7 - Moses
@Moses Quelle est votre aversion particulière envers PowerShell? Ce n'est pas comme si vous cherchiez à le faire sur XP ou Server 2003, où PowerShell n'est pas intégré à une installation standard. De plus, PowerShell vous permet d'exécuter certaines commandes à distance (si les systèmes sont correctement configurés pour cela), ce qui vous permettrait de rassembler facilement toutes les données de tous vos systèmes sur le réseau en un seul script. - Iszi
@Iszi En fait, pour un grand nombre de systèmes, en utilisant PowerShell doit effectuer toute la tâche (déterminer si le certificat doit être installé, puis l’installer si ce n’est pas le cas) est entièrement plausible - en supposant qu’ils soient tous sur le même réseau local, vous pouvez vous asseoir les PC sous votre responsabilité en utilisant la fonctionnalité distante de PS. Je pense plutôt qu'il essaierait de mettre en place sa solution dans PS, plutôt que de l'éviter! - allquixotic
@ allquixotic je vais avouer que plus d'une fois j'ai posé une question comme ça moi-même. C'était peut-être presque autant de peur de s'adapter à PowerShell (vs d'écrire les scripts de lot que j'ai compris) que de supporter XP / 2003. J'ai appris un peu depuis, cependant. Maintenant, je ne supporte plus d'être limité au lot. - Iszi


Réponses:


Voici comment faire à partir d'un cmd.exe shell sur Windows 7, sans démarrer PowerShell au préalable:

C:\> powershell -Command Get-ChildItem -Recurse Cert:

Vous pouvez alors diriger la sortie vers d'autres commandes (quelles commandes? Bien, votre question ne concerne pas cela, donc je n'entrerai pas dans les détails) ou dans un fichier. De là, vous pouvez déterminer si le certificat spécifique que vous recherchez est installé.

Puisque vous avez dit que vous êtes sur Windows 7, je suppose que PowerShell est installé. Pour ne pas avoir PowerShell, il doit être explicitement désinstallé et vous n'avez pas mentionné dans votre question que PowerShell était désinstallé ou non disponible, ou que la solution devait fonctionner sur Windows antérieur à Vista où PowerShell n'existait pas.


7
2017-12-19 20:27



Je sais comment diriger la sortie, cela ne devrait donc pas être un problème. Ma principale raison d’éviter Powershell est que j’utilise deux applications de gestion différentes qui fonctionnent très bien avec les lots. Cela fonctionnera bien, cependant. Merci - Moses
On dirait le Personal -> Certificates d'intérêt pour vous montrer sous le Name : My section de la sortie PowerShell. - jxramos


Pas de Powershell nécessaire.

En outre, la solution proposée vide les données brutes, et pas uniquement le magasin personnel demandé par l'OP.

N.B. Ce qui suit a été exécuté dans un shell d'invite de commandes d'administrateur

C: \ windows \ system32> systeminfo | findstr / B / C: "Nom du système d'exploitation" / C: "Version du système d'exploitation"

OS Name:                   Microsoft Windows 7 Enterprise

OS Version:                6.1.7601 Service Pack 1 Build 7601

C: \ windows \ system32> certutil -store My

My   <<< Certificate Store Name

================ Certificate 0 ================

Serial Number: ****************************  *<<< asterisks = mask for post. You will see cert info*

Issuer: ****************************

NotBefore: ****************************

NotAfter: ****************************

Subject: CN=****************************

Non-root Certificate

Template: ****************************

Cert Hash(sha1): ****************************

Simple container name: ****************************

  Provider = Microsoft RSA SChannel Cryptographic Provider

Private key is NOT exportable

Encryption test passed

2
2017-08-09 12:44