Getting Cached Credentials

by | September 28,2017

Table of Contents

Managing Cached Credentials with PSCredentialManager

In the previous tip we talked about a public module called PSCredentialManager that helps you manage cached credentials. Sometime, less is more, so when you look at the code you’ll soon discover that it is a console command called cmdkey.exe that actually interacts with Windows.

Listing Cached Credentials with cmdkey.exe

To get a list of cached credentials on your local machine, all you really need is this:

 
PS> cmdkey /list

Currently stored credentials:

    Target: MicrosoftAccount_target=SSO_POP_User
    Type: Domain Extended Credentials
    User: XXXXX.com
    Saved for this logon only
    
    Target: MicrosoftAccount_target=SSO_POP_Device
    Type: Domain Extended Credentials
    User: 06jbdrfztrwsvsb
    Saved for this logon only 
...

The output is plain text. However, PowerShell can convert the raw data using the ForEach-Object:

cmdkey.exe /list | ForEach-Object {$found=$false} {
    $line = $_.Trim()
    if ($line -eq '') 
    {
        if ($found) { $newobject }
        $found = $false
        $newobject = '' | Select-Object -Property Type, User, Info, Target
    }
    else
    {
        if ($line.StartsWith("Target: "))
        {
            $found = $true
            $newobject.Target = $line.Substring(8)
        }
        elseif ($line.StartsWith("Type: "))
        {
            $newobject.Type = $line.Substring(6)
        }
        elseif ($line.StartsWith("User: "))
        {
            $newobject.User = $line.Substring(6)
        }
        else
        {
            $newobject.Info = $line
        }

    }
}

The result would look similar to this:

 
Type                        User                   Info                      Target
----                        ----                   ----                      ------
Domain Extended Credentials [email protected] Saved for this logon only Mi
Domain Extended Credentials 02jbqxcbqvsb           Saved for this logon only Mi
Generic                     [email protected] Local machine persistence Le
Generic                                            Local machine persistence Le
Generic                                            Local machine persistence Le
Generic                                            Local machine persistence Le
Generic                     [email protected] Local machine persistence Le
Generic                                            Local machine persistence Le
Generic                     02jdrxcbqvsb           Local machine persistence Wi
Generic                     Martin                                           Le
Domain Password             Martin                                           Do
Domain Password             Martin                                           Do
Domain Password             User                                             Do

Twitter This Tip! ReTweet this Tip!