Skip to content

Instantly share code, notes, and snippets.

@janikvonrotz
Created December 6, 2013 07:39
Show Gist options
  • Select an option

  • Save janikvonrotz/7819990 to your computer and use it in GitHub Desktop.

Select an option

Save janikvonrotz/7819990 to your computer and use it in GitHub Desktop.
PowerShell: Delete all cmdkey credentials #PowerShell #Windows
cmdkey /list | ForEach-Object{if($_ -like "*Ziel:*"){cmdkey /del:($_ -replace " ","" -replace "Ziel:","")}}
@mrajusjp
Copy link
Copy Markdown

mrajusjp commented Sep 18, 2017

Try this.
cmdkey /list | ForEach-Object{if($_ -like "*Microsoft_OC1*"){cmdkey /del:($_ -replace " ","" -replace "Target:","")}}

@cpratlong
Copy link
Copy Markdown

cpratlong commented Oct 15, 2018

Here is a "filtering" allowing to erase all, whatever windows language it is

$Credentials = (cmdkey /list | Where-Object {$_ -like "*Target=*"})
Foreach ($Target in $Credentials) {
    $Target = ($Target -split (":", 2) | Select-Object -Skip 1).substring(1)
    $Argument = "/delete:" + $Target
    Start-Process Cmdkey -ArgumentList $Argument -NoNewWindow -RedirectStandardOutput $False
    }

@BigKatGalarraga
Copy link
Copy Markdown

Try this. Just tried it and it work! Used regex to remove everything the beginning of Target:....to after target=. Then pass that on to /del:$_

cmdkey /list | ForEach-Object {if ($_ -like "Target:") {cmdkey /del:($_ -replace '^.+=', '')}}

@BigKatGalarraga
Copy link
Copy Markdown

looks like the * asterisks were removed when posting. You can add them before/after the quotes to -like "Target:" or use -match "Target: "

@vinayiitkgp
Copy link
Copy Markdown

I need to delete cached credentials of a user. The tool I am using to connect to the remote computer runs under sys. So cmdkey /list is returning only the targets that it has access to. When the cmdkey /list is run on the target computer directly on the powershell console, it returns all the target that the logged user has access to. How do I retrieve these targets from a remote session running user sys?

@kobyon
Copy link
Copy Markdown

kobyon commented Jan 12, 2022

@leblancmeneses
Copy link
Copy Markdown

Target: LegacyGeneric:target=Adobe App Prefetched Info (cc)(Part2)

cmdkey /list | ForEach-Object {
  if ($_ -like "*Adobe*") {
    cmdkey /del:($_ -replace '^[^=]+',"" -replace "=","")
  }
}

@undone37
Copy link
Copy Markdown

undone37 commented Feb 9, 2023

German:
cmdkey /list | ForEach-Object{if($_ -like "*Ziel:*"){cmdkey /del:($_ -replace "    ","" -replace "Ziel: ","")}}
English:
cmdkey /list | ForEach-Object{if($_ -like "*Target:*"){cmdkey /del:($_ -replace "    ","" -replace "Target: ","")}}

This will even delete entries with spaces (based on the original version).

@Joadison
Copy link
Copy Markdown

O comando é cmdkey /list | ForEach-Object {if($_ -like "Target=") {echo($_ -replace " ","" -replace "^.*target=","")}}

@Joadison
Copy link
Copy Markdown

O comondo correto é

cmdkey /list | ForEach-Object {if($_ -like "Target=") {echo($_ -replace " ","" -replace "^.*target=","")}}

@Joadison
Copy link
Copy Markdown

cmdkey /list | ForEach-Object {if($_ -like "*Target=*") {cmdkey /delete:($_ -replace " ","" -replace "^.*target=","")}}

@lucapiccio
Copy link
Copy Markdown

lucapiccio commented Mar 18, 2024

For me all your listing depends from windows language version.

If you want to delete all key ignoring the lang of windows you can do:

cmdkey /list | ForEach-Object{
    if($_ -like "*=*"){
        $c = ($_ -replace (' ')).split(":", 2)[1]
        cmdkey.exe /delete $c | Out-Null
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment