Certificate/Get-CSCertificate.ps1

function Get-CSCertificate {
    <#
    .SYNOPSIS
        Returns the certificate object given by thumbprint.
 
    .DESCRIPTION
        You can use this function to get a stored certificate. Search for the object by its unique thumbprint.
 
    .PARAMETER Thumbprint
        Provide one or more thumprints.
 
    .PARAMETER StoreName
        Select the store name in which you want to search the certificates.
 
    .PARAMETER StoreLocation
        Select between the both available locations CurrentUser odr LocalMachine.
 
    .INPUTS
        [string]
 
    .OUTPUTS
        [System.Security.Cryptography.X509Certificates.X509Certificate2[]]
 
    .EXAMPLE
        Get-CSCertificate -Thumbprint '12345678' -StoreName 'My' -StoreLocation 'CurrentUser'
 
    .NOTES
        File Name : Get-CSCertificate.ps1
        Author : Marco Blessing - marco.blessing@googlemail.com
        Requires :
 
    .LINK
        https://github.com/OCram85/PSCredentialStore
    #>

    [CmdletBinding()]
    [OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])]
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [string[]]$Thumbprint,

        [Parameter(Mandatory = $false)]
        [ValidateSet(
            'AddressBook',
            'AuthRoot',
            'CertificateAuthority',
            'Disallowed',
            'My',
            'Root',
            'TrustedPeople',
            'TrustedPublisher'
        )]
        [string]$StoreName = 'My',

        [Parameter(Mandatory = $false)]
        [ValidateSet(
            'CurrentUser',
            'LocalMachine'
        )]
        [string]$StoreLocation = 'CurrentUser'
    )

    begin {
        $Store = [System.Security.Cryptography.X509Certificates.X509Store]::New($StoreName, $StoreLocation)
        try {
            $Store.Open('ReadOnly')
        }
        catch {
            $_.Exception.Message | Write-Error -ErrorAction Stop
        }
    }

    process {
        foreach ($Thumb in $Thumbprint) {
            Write-Output $Store.Certificates | Where-Object { $_.Thumbprint -eq $Thumb }
        }
    }
    end {
        $Store.Close()
    }
}