Search code examples
c#.netpowershell

How to get all certificates with powershell?


I am trying to get all certificates with powershell. When I set "\$computer\My" as store location below script returns user certificates I think.

When I set "\$computer\root" it returns root certificates. How can I get both user and machine certificates?

$computer='localhost';
$ro=[System.Security.Cryptography.X509Certificates.OpenFlags]"ReadOnly"
$lm=[System.Security.Cryptography.X509Certificates.StoreLocation]"LocalMachine"
$store=new-object System.Security.Cryptography.X509Certificates.X509Store("\\$computer\My",$lm)
$store.Open($ro)
$certificates=$store.Certificates

Solution

  • There is a PSDrive Cert, which contains CurrentUser and LocalMachine.

    So this get you all certificates:

    Get-ChildItem Cert:\ -Recurse