PoshCode Archive  Hex Artifact Content

Artifact 04f4bc3079aa4466a3086466985b89ed1ab546f553f142e956a87a28a8f61529:

  • File Search-CertificateStore.ps1 — part of check-in [78a552f9c6] at 2018-06-10 13:07:07 on branch trunk — From Windows PowerShell Cookbook (O‚ÄôReilly) by Lee Holmes (user: Lee Holmes size: 1528)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 53  hell..# title: S
0030: 65 61 72 63 68 2d 43 65 72 74 69 66 69 63 61 74  earch-Certificat
0040: 65 53 74 6f 72 65 2e 0d 0a 23 20 64 65 73 63 72  eStore...# descr
0050: 69 70 74 69 6f 6e 3a 20 46 72 6f 6d 20 57 69 6e  iption: From Win
0060: 64 6f 77 73 20 50 6f 77 65 72 53 68 65 6c 6c 20  dows PowerShell 
0070: 43 6f 6f 6b 62 6f 6f 6b 20 28 4f e2 80 99 52 65  Cookbook (O...Re
0080: 69 6c 6c 79 29 20 62 79 20 4c 65 65 20 48 6f 6c  illy) by Lee Hol
0090: 6d 65 73 0d 0a 23 20 76 65 72 73 69 6f 6e 3a 20  mes..# version: 
00a0: 30 2e 31 0d 0a 23 20 61 75 74 68 6f 72 3a 20 4c  0.1..# author: L
00b0: 65 65 20 48 6f 6c 6d 65 73 0d 0a 23 20 6c 69 63  ee Holmes..# lic
00c0: 65 6e 73 65 3a 20 43 43 30 0d 0a 23 20 78 2d 70  ense: CC0..# x-p
00d0: 6f 73 68 63 6f 64 65 2d 69 64 3a 20 32 32 30 37  oshcode-id: 2207
00e0: 0d 0a 23 20 78 2d 61 72 63 68 69 76 65 64 3a 20  ..# x-archived: 
00f0: 32 30 31 36 2d 30 33 2d 31 39 54 30 38 3a 30 38  2016-03-19T08:08
0100: 3a 35 35 0d 0a 23 20 78 2d 70 75 62 6c 69 73 68  :55..# x-publish
0110: 65 64 3a 20 32 30 31 31 2d 30 39 2d 30 39 54 32  ed: 2011-09-09T2
0120: 31 3a 34 32 3a 30 30 0d 0a 23 0d 0a 23 0d 0a 23  1:42:00..#..#..#
0130: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0140: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0150: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0160: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0170: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 23  #############..#
0180: 23 0d 0a 23 23 20 53 65 61 72 63 68 2d 43 65 72  #..## Search-Cer
0190: 74 69 66 69 63 61 74 65 53 74 6f 72 65 0d 0a 23  tificateStore..#
01a0: 23 0d 0a 23 23 20 46 72 6f 6d 20 57 69 6e 64 6f  #..## From Windo
01b0: 77 73 20 50 6f 77 65 72 53 68 65 6c 6c 20 43 6f  ws PowerShell Co
01c0: 6f 6b 62 6f 6f 6b 20 28 4f 27 52 65 69 6c 6c 79  okbook (O'Reilly
01d0: 29 0d 0a 23 23 20 62 79 20 4c 65 65 20 48 6f 6c  )..## by Lee Hol
01e0: 6d 65 73 20 28 68 74 74 70 3a 2f 2f 77 77 77 2e  mes (http://www.
01f0: 6c 65 65 68 6f 6c 6d 65 73 2e 63 6f 6d 2f 67 75  leeholmes.com/gu
0200: 69 64 65 29 0d 0a 23 23 0d 0a 23 23 23 23 23 23  ide)..##..######
0210: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0220: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0230: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0250: 23 23 23 23 23 23 23 23 0d 0a 0d 0a 3c 23 0d 0a  ########....<#..
0260: 0d 0a 2e 53 59 4e 4f 50 53 49 53 0d 0a 0d 0a 53  ...SYNOPSIS....S
0270: 65 61 72 63 68 20 74 68 65 20 63 65 72 74 69 66  earch the certif
0280: 69 63 61 74 65 20 70 72 6f 76 69 64 65 72 20 66  icate provider f
0290: 6f 72 20 63 65 72 74 69 66 69 63 61 74 65 73 20  or certificates 
02a0: 74 68 61 74 20 6d 61 74 63 68 20 74 68 65 20 73  that match the s
02b0: 70 65 63 69 66 69 65 64 0d 0a 45 6e 68 61 6e 63  pecified..Enhanc
02c0: 65 64 20 4b 65 79 20 55 73 61 67 65 20 28 45 4b  ed Key Usage (EK
02d0: 55 2e 29 0d 0a 0d 0a 2e 45 58 41 4d 50 4c 45 0d  U.).....EXAMPLE.
02e0: 0a 0d 0a 53 65 61 72 63 68 2d 43 65 72 74 69 66  ...Search-Certif
02f0: 69 63 61 74 65 53 74 6f 72 65 20 22 45 6e 63 72  icateStore "Encr
0300: 79 70 74 69 6e 67 20 46 69 6c 65 20 53 79 73 74  ypting File Syst
0310: 65 6d 22 0d 0a 0d 0a 23 3e 0d 0a 0d 0a 70 61 72  em"....#>....par
0320: 61 6d 28 0d 0a 20 20 20 20 23 23 20 54 68 65 20  am(..    ## The 
0330: 66 72 69 65 6e 64 6c 79 20 6e 61 6d 65 20 6f 66  friendly name of
0340: 20 61 6e 20 45 6e 68 61 6e 63 65 64 20 4b 65 79   an Enhanced Key
0350: 20 55 73 61 67 65 0d 0a 20 20 20 20 23 23 20 28   Usage..    ## (
0360: 73 75 63 68 20 61 73 20 27 43 6f 64 65 20 53 69  such as 'Code Si
0370: 67 6e 69 6e 67 27 29 0d 0a 20 20 20 20 5b 50 61  gning')..    [Pa
0380: 72 61 6d 65 74 65 72 28 4d 61 6e 64 61 74 6f 72  rameter(Mandator
0390: 79 20 3d 20 24 74 72 75 65 29 5d 0d 0a 20 20 20  y = $true)]..   
03a0: 20 24 45 6b 75 4e 61 6d 65 0d 0a 29 0d 0a 0d 0a   $EkuName..)....
03b0: 53 65 74 2d 53 74 72 69 63 74 4d 6f 64 65 20 2d  Set-StrictMode -
03c0: 4f 66 66 0d 0a 0d 0a 23 23 20 47 6f 20 74 68 72  Off....## Go thr
03d0: 6f 75 67 68 20 65 76 65 72 79 20 63 65 72 74 69  ough every certi
03e0: 66 69 63 61 74 65 20 69 6e 20 74 68 65 20 63 75  ficate in the cu
03f0: 72 72 65 6e 74 20 75 73 65 72 27 73 20 22 4d 79  rrent user's "My
0400: 22 20 73 74 6f 72 65 0d 0a 66 6f 72 65 61 63 68  " store..foreach
0410: 28 24 63 65 72 74 20 69 6e 20 47 65 74 2d 43 68  ($cert in Get-Ch
0420: 69 6c 64 49 74 65 6d 20 63 65 72 74 3a 5c 43 75  ildItem cert:\Cu
0430: 72 72 65 6e 74 55 73 65 72 5c 4d 79 29 0d 0a 7b  rrentUser\My)..{
0440: 0d 0a 20 20 20 20 23 23 20 46 6f 72 20 65 61 63  ..    ## For eac
0450: 68 20 6f 66 20 74 68 6f 73 65 2c 20 67 6f 20 74  h of those, go t
0460: 68 72 6f 75 67 68 20 69 74 73 20 65 78 74 65 6e  hrough its exten
0470: 73 69 6f 6e 73 0d 0a 20 20 20 20 66 6f 72 65 61  sions..    forea
0480: 63 68 28 24 65 78 74 65 6e 73 69 6f 6e 20 69 6e  ch($extension in
0490: 20 24 63 65 72 74 2e 45 78 74 65 6e 73 69 6f 6e   $cert.Extension
04a0: 73 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  s)..    {..     
04b0: 20 20 20 23 23 20 46 6f 72 20 65 61 63 68 20 65     ## For each e
04c0: 78 74 65 6e 73 69 6f 6e 2c 20 67 6f 20 74 68 72  xtension, go thr
04d0: 6f 75 67 68 20 69 74 73 20 45 6e 68 61 6e 63 65  ough its Enhance
04e0: 64 20 4b 65 79 20 55 73 61 67 65 73 0d 0a 20 20  d Key Usages..  
04f0: 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 24 63        foreach($c
0500: 65 72 74 45 6b 75 20 69 6e 20 24 65 78 74 65 6e  ertEku in $exten
0510: 73 69 6f 6e 2e 45 6e 68 61 6e 63 65 64 4b 65 79  sion.EnhancedKey
0520: 55 73 61 67 65 73 29 0d 0a 20 20 20 20 20 20 20  Usages)..       
0530: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
0540: 23 23 20 49 66 20 74 68 65 20 66 72 69 65 6e 64  ## If the friend
0550: 6c 79 20 6e 61 6d 65 20 6d 61 74 63 68 65 73 2c  ly name matches,
0560: 20 6f 75 74 70 75 74 20 74 68 61 74 20 63 65 72   output that cer
0570: 74 69 66 69 63 61 74 65 0d 0a 20 20 20 20 20 20  tificate..      
0580: 20 20 20 20 20 20 69 66 28 24 63 65 72 74 45 6b        if($certEk
0590: 75 2e 46 72 69 65 6e 64 6c 79 4e 61 6d 65 20 2d  u.FriendlyName -
05a0: 65 71 20 24 65 6b 75 4e 61 6d 65 29 0d 0a 20 20  eq $ekuName)..  
05b0: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
05c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 65               $ce
05d0: 72 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  rt..            
05e0: 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20  }..        }..  
05f0: 20 20 7d 0d 0a 7d 0d 0a                            }..}..