functions/credentials/Get-DBUserCredential.ps1

<#
.SYNOPSIS
    Gets the credential stored under the application name.
 
.DESCRIPTION
    Gets the credential stored under the application name.
 
.PARAMETER ApplicationName
    The application name the credentials will be saved under.
 
.OUTPUTS
    The credentials for the application name.
 
.EXAMPLE
    PS>$credential = Get-DBUserCredential -ApplicationName "myappname"
 
.LINK
    https://github.com/tcartwright/tcdbtools
 
.LINK
    https://support.microsoft.com/en-us/windows/accessing-credential-manager-1b5c916a-6a16-889f-8581-fc16e8165ac0#:~:text=Credential%20Manager%20lets%20you%20view,select%20Credential%20Manager%20Control%20panel.
 
.NOTES
    Author: Tim Cartwright
#>


function Get-DBUserCredential {
    [OutputType([pscredential])]
    [CmdletBinding()]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '', Justification='Must be a string')]
    param (
        [Parameter(Mandatory=$true)]
        [string]$ApplicationName
    )

    begin {
    }

    process {
        $credObject = [CredManager.Util]::GetUserCredential($ApplicationName)

        [SecureString]$securePassword = ConvertTo-SecureString ($credObject.password) -AsPlainText -Force
        [pscredential]$credentials = New-Object System.Management.Automation.PSCredential ($credObject.username, $securePassword)
        return $credentials
    }

    end {
    }
}