Store/Get-CredentialStore.ps1

function Get-CredentialStore {
    <#
    .SYNOPSIS
        Reads the complete content of the credential store and returns it as a new object.
 
    .DESCRIPTION
        The content is in a raw format. It means there is no transformation to the different credential types.
        You can not use the object properties to connect with remote host. Therefore please use
        Get-CredentialStoreItem.
 
    .PARAMETER Path
        Define a custom path to a shared CredentialStore.
 
    .PARAMETER Shared
        Switch to shared mode with this param. This enforces the command to work with a shared CredentialStore which
        can be decrypted across systems.
 
    .INPUTS
        [None]
 
    .OUTPUTS
        [PSObject] Returns the credential store content as PSObject.
 
    .EXAMPLE
        $CSContent = Get-CredentialStore -Path "C:\TMP\mystore.json"
 
    .NOTES
        File Name : Get-CredentialStore.ps1
        Author : Marco Blessing - marco.blessing@googlemail.com
        Requires :
 
    .LINK
        https://github.com/OCram85/PSCredentialStore
    #>


    [CmdletBinding(DefaultParameterSetName = "Private")]
    param(
        [Parameter(Mandatory = $false, ParameterSetName = "Shared")]
        [string]$Path = "{0}\PSCredentialStore\CredentialStore.json" -f $env:ProgramData,

        [Parameter(Mandatory = $false, ParameterSetName = "Shared")]
        [switch]$Shared
    )

    if ($PSCmdlet.ParameterSetName -eq 'Private') {
        $Path = "{0}\CredentialStore.json" -f $env:APPDATA
    }

    if (Test-CredentialStore -Path $Path) {
        try {
            $FileContent = Get-Content -Path $Path -Raw
            ConvertFrom-Json $FileContent
        }
        catch [System.Exception] {
            $MessageParams = @{
                Message = "Unknown CredentialStore format. Invalid JSON file."
                ErrorAction = "Stop"
            }
            Write-Error @MessageParams
        }
    }
    else {
        $MessageParams = @{
            Message = "Could not find the CredentialStore."
            ErrorAction = "Stop"
        }
        Write-Error @MessageParams
    }
}