Iterate over certifikater i windows powershell

Indlæg af Hanne Mølgaard Plasc

Problem



Powershell giver adgang til certifikaterne på en Windows 7-maskine på følgende måde:


  PS C:Usersz0017fjy> cd cert:
PS cert:> dir


Location   : CurrentUser
StoreNames : {SmartCardRoot, UserDS, AuthRoot, CA...}

Location   : LocalMachine
StoreNames : {SmartCardRoot, AuthRoot, CA, Trust...}



PS cert:> cd .LocalMachine
PS cert:LocalMachine> dir


Name : SmartCardRoot

Name : AuthRoot

Name : CA

Name : Trust

Name : Disallowed

Name : SMS

Name : My

Name : Root

Name : TrustedPeople

Name : TrustedDevices

Name : Remote Desktop

Name : TrustedPublisher

Name : REQUEST


Nu vil jeg iterere over cert-mappen ved hjælp af følgende pseudokode:


for each subfolder in cert:
  for each certstore in subfolder:
     for each cert in certstore:
        print cert.information


Hvordan ville jeg gøre det i powerhell?

Bedste reference


Certifikatarkivet er dækket af en PSProvider, som lader dig behandle det lidt som et filsystem. Der er også udbydere til registret, wsm-indstillinger og andre.


Til dit formål:
Get-ChildItem -Recurse -Path Cert:


Du kan se andre tilgængelige udbydere med Get-PSProvider. https://technet.microsoft.com/en-us/library/ee176857.aspx[6]