Scripts/Get-StoredCredential.ps1
Function Get-StoredCredential { param( [Parameter(Mandatory=$false, ParameterSetName="Get")] [string]$UserName, [Parameter(Mandatory=$false, ParameterSetName="List")] [switch]$List ) If (!(Test-Path env:StoredCredentialPath)) { Write-Error "env:StoredCredentialPath does not exist. Run Set-StoredCredentialPath to setup" -ErrorAction Stop } if ($List) { try { $CredentialList = @(Get-ChildItem -Path $env:StoredCredentialPath -Filter *.cred -ErrorAction STOP) foreach ($Cred in $CredentialList) { Write-Host "Username: $($Cred.BaseName)" } } catch { Write-Warning $_.Exception.Message } } if ($UserName) { if (Test-Path "$($env:StoredCredentialPath)\$($Username).cred") { $PwdSecureString = Get-Content "$($env:StoredCredentialPath)\$($Username).cred" | ConvertTo-SecureString $Credential = New-Object System.Management.Automation.PSCredential -ArgumentList $Username, $PwdSecureString } else { throw "Unable to locate a credential for $($Username)" } return $Credential } } |