CMDKEY - CMD
Overview
The CMDKEY command in Windows is used to create, list, and delete stored user names and passwords from a user’s credentials store. This utility is primarily used for managing credentials for automatic logon by command-line tools, enabling secure access to various network resources without manual input of passwords.
Syntax
The basic syntax for CMDKEY is as follows:
CMDKEY [{/add | /generic}]:TargetName /user:UserName /pass[:Password]
CMDKEY /list[:TargetName]
CMDKEY {/delete | /deletecert}:TargetName
CMDKEY /deleteall
Parameters
/add: Adds a user account and password to the credential store./generic: Adds generic credentials.TargetName: Specifies the server or domain name where the credentials are to be used./user: Specifies the username associated with the credentials./pass: Optional. Specifies the password for the given user. If not provided, the command prompts for a password./list: Lists detailed information about all stored credentials. A specificTargetNamecan be provided to list details of a particular credential./delete: Deletes credentials for a specifiedTargetName./deletecert: Deletes a certificate for a specifiedTargetName./deleteall: Deletes all credentials stored on the computer.
Options/Flags
TargetName: Specifies the remote system or service you want your credentials to be associated with, formatted as domain or server./user: Typically used with administrative credentials that need elevated privileges./pass: For automated scripts, adding a password directly can avoid manual input but can be a security risk./list: Useful for verifying currently stored credentials./delete: Important for removing credentials when no longer necessary or when changing passwords./deleteall: Used for clearing out all stored credentials, often as a security measure before transferring a system.
Examples
-
Adding a credential for a network resource:
CMDKEY /add:corpserver.net /user:john /pass -
Listing all credentials:
CMDKEY /list -
Deleting a specific credential:
CMDKEY /delete:corpserver.net -
Deleting all credentials on a system:
CMDKEY /deleteall
Common Issues
-
Security Risk: Storing passwords with
/pass:Passwordcan expose sensitive information if the script is shared or accessed by unauthorized users.Solution: Use password prompts or manage passwords through secure vaults.
-
Credential Overwrite: Using
/addwith an existingTargetNamewill overwrite the existing credentials without warning.Solution: Always check existing credentials with
/listbefore adding new ones.
Integration
CMDKEY can be integrated with other commands and scripts to automate various network-related tasks. For instance:
-
Batch login script:
CMDKEY /add:corpserver.net /user:john /pass:example NET USE Z: \\corpserver.net\share -
Clear credentials post-script execution:
:: At the start of the script CMDKEY /add:corpserver.net /user:john /pass:example :: Your script commands here :: At the end of the script CMDKEY /delete:corpserver.net
Related Commands
NET USE: Used to connect, disconnect, and manage network resources.RUNAS: Execute a program under a different user account.
For more detailed documentation and advanced usage scenarios, refer to Microsoft’s official documentation on CMDKEY and related commands.