cmdkey.exe(Windows Command-Line Credential Manager Tool)用于管理存储在凭据管理器(Credential Manager)中的凭据信息。用户在命令行中添加、删除、列出和显示存储的凭据,调用 Windows API 或使用 CredentialManager PowerShell 模块来管理 Windows 凭据。

cmdkey | Microsoft Learn cmdkey.exe

 

cmdkey.exe 完整英文全称、释义与配套链路

一、完整英文全称

1. 工具缩写拆分

cmdkey = Command Key
  • cmd = Command(命令行)
  • key = Key / Credential Key(凭据密钥、凭证)

2. Microsoft Learn 官方完整文件描述全称

Command Credential Manager Utility(命令行凭据管理工具)
 
可执行文件完整标注:Windows Command-Line Credential Manager Tool
 
文件路径:C:\Windows\System32\cmdkey.exe

底层 COM 接口标准名称

ICmdKeyManager(命令行凭据管理接口)

二、核心定义与作用

  1. 工具定位:Windows 内置命令行凭据管理器,图形界面对应「凭据管理器(credmgr.msc)」,用于添加、删除、列举 Windows 凭据、域身份凭据、Web 站点持久凭证;
  2. 存储载体:凭据持久化存储在本地安全机构 LSA,域凭据同步写入ntds.dit账户安全属性,身份绑定账户SID(Security Identifier)
  3. 典型用途:保存 AD 域服务器、SMB 共享、http.sys 内网 Web 站点、TPM 虚拟智能卡(tpmvscmgr)访问凭证,配合klist.exe Kerberos 票据完成身份认证。

三、核心配套链路

  1. 安全身份层:基于账户 SID 校验凭据读写权限,本地 SAM / 域ntds.dit存储身份主体;
  2. Kerberos 协同:与klist联动,存储长期服务票据凭证,自动刷新 TGT;
  3. 网络层:Realtek 网卡承载 SMB/HTTP/TCP 流量,访问远端服务器时自动调取 cmdkey 存储的凭据;
  4. Web 服务层:http.sys 内核 HTTPS 站点访问自动读取持久 Web 凭据;

cmdkey.exe 完整拆解解构

一、基础定位

cmdkey.exe = Windows 原生控制台凭据管理工具
 
路径:C:\Windows\System32\cmdkey.exe
 
核心作用:命令行操作 Credential Manager(凭据管理器),实现凭据新增、枚举、删除;对应图形界面 control keymgr.dll,KRShowKeyMgr
关键边界区分:
  1. cmdkey 只是上层命令行外壳,不实现加密存储逻辑;底层完全依赖 Win32 CredMan API;
  2. 仅操作当前登录会话用户的凭据隔离空间;无法跨用户读写他人凭据
  3. 只能管理「Windows 凭据 / Generic 通用凭据」;不管理 Web 凭据(Edge/IE 网页密码);Web 凭据由 vaultcmd.exe 单独管理。
典型场景:SMB 共享、RDP 远程桌面(TERMSRV/前缀)、NAS、内网 Web、应用持久身份;企业运维脚本、MEM/ConfigMgr 终端自动化经常使用。

二、分层整体架构

plaintext
脚本/CMD/PowerShell → cmdkey.exe(控制台解析参数)
        ↓ 调用 Advapi32.dll Credential API
Windows Credential Manager 子系统
        ↓ DPAPI 加密封装凭据二进制Blob
        ↓ VaultSvc + LSA安全上下文校验
持久存储:用户目录加密凭据文件(.vcrd / Credentials目录加密blob)
重要:cmdkey不直接与 LSASS 进程 RPC 通信;Credential API 内部由系统负责安全上下文校验,凭据持久文件由 DPAPI 绑定当前用户 SID + 登录主密钥加密。

三、底层核心原理

3.1 程序执行流程

  1. cmdkey.exe 解析命令行参数:/list /add /generic /delete
  2. 根据参数调用对应 Advapi32.dll Win32 Credential API
    • /listCredEnumerateW()
    • /add /genericCredWriteW()
    • /deleteCredDeleteW()
  3. API 执行前强制校验调用进程安全令牌:凭据绑定当前登录用户上下文;
  4. 写入凭据时,明文密码交由系统内部通过 DPAPI 加密;cmdkey 本身不做加密运算;
  5. 枚举时只能读取目标名称、用户名;不会输出明文密码(安全设计,API 允许读取明文,但 cmdkey 代码刻意屏蔽打印密码)。

3.2 两种凭据类型(/add vs /generic)

  1. /add:TargetName → Windows 凭据(CRED_TYPE_DOMAIN_PASSWORD)
     
    用于 SMB、服务器 NetBIOS/IP、NTLM 域资源;
    cmd
    cmdkey /add:\\192.168.1.100 /user:admin /pass:P@ssw0rd
  2. /generic:TargetName → 通用凭据(CRED_TYPE_GENERIC)
     
    第三方应用、RDP 远程桌面强制使用(TERMSRV/server)、自定义服务;
    cmd
    cmdkey /generic:TERMSRV/RDS01.corp.local /user:admin@corp.local /pass:P@ssw0rd
RDP 客户端只识别 Generic 类型 TERMSRV/ 前缀凭据;使用 /add 添加 RDP 凭据不会自动生效,是运维高频踩坑点。

3.3 DPAPI 加密持久化机制(核心安全底座)

凭据写入流程:
  1. 明文账号密码 → Windows 系统内部组装 Credential 结构体;
  2. 调用 CryptProtectData(DPAPI) 使用当前用户登录主密钥加密密码 Blob;
  3. 加密后的二进制数据写入用户隔离目录;
  4. 用户注销 / 重启后,只有同一用户登录,DPAPI 才能解密;
无法直接复制凭据文件给其他用户使用;除非导出.crd 备份(图形界面 keymgr 支持,cmdkey 无导出能力)。
存储路径(加密文件,无法记事本直接读取)
plaintext
%LOCALAPPDATA%\Microsoft\Credentials\
%APPDATA%\Microsoft\Credentials\
新版 Vault 凭据存放:
plaintext
%LOCALAPPDATA%\Microsoft\Vault\

3.4 权限与会话隔离规则

  1. 凭据绑定登录会话 LUID + 用户 SID
     
    同一个账号不同终端会话凭据相互隔离;
  2. 普通用户只能读写自己的凭据;
  3. 本地 System 账户有独立凭据空间;交互式用户无法访问 System 凭据;
  4. Credential Guard 启用场景:DPAPI 主密钥被 VBS 虚拟化保护,攻击者无法直接导出内存密钥解密凭据。

3.5 常见误区澄清

❌ cmdkey 不缓存活动 Kerberos 票据;Kerberos 票据由 lsass.exe + klist.exe 管理;凭据管理器保存持久账号密码,票据是临时会话凭证,二者完全独立。
 
❌ 删除凭据后已建立的 SMB/RDP 会话不会立刻断开;内核层仍保留连接,需要手动 net use * /delete

四、依赖文件、进程、注册表

4.1 核心二进制依赖

文件 路径 作用
cmdkey.exe System32 控制台入口,参数解析
advapi32.dll System32 提供 CredEnumerateW/CredWriteW/CredDeleteW 核心 API
crypt32.dll System32 DPAPI 加密基础库
rpcrt4.dll System32 API 底层系统 RPC 支撑
vaultcli.dll System32 Vault 存储底层支撑(新版 Windows)

4.2 必需系统进程与服务

  1. VaultSvc(Windows 凭据服务)
     
    服务名称:VaultSvc;缺失 / 停止 → Credential API 调用全部失败,cmdkey 报错。
  2. lsass.exe:安全上下文、令牌校验、DPAPI 主密钥管理
  3. conhost.exe:cmdkey 作为控制台程序,运行时自动挂载控制台宿主

4.3 关键注册表

凭据服务配置
reg
HKLM\SYSTEM\CurrentControlSet\Services\VaultSvc
凭据相关安全策略(Cred Delegation、保存凭据限制)
reg
HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation

4.4 不依赖组件

❌ 不依赖 npfs.sys(命名管道);
 
❌ 不依赖 WMI、BITS;
 
❌ 不依赖 WinRM;
 
❌ 不直接依赖 SMB 驱动(仅存储凭据,不发起网络连接)。

五、完整逻辑链路(两条典型流程)

链路 1:cmdkey /list 枚举凭据

plaintext
PowerShell/cmd 启动 cmdkey.exe
        ↓ cmdkey解析参数,加载advapi32.dll
调用 CredEnumerateW()
        ↓ 系统校验当前进程用户令牌
VaultSvc读取用户目录加密凭据文件
        ↓ DPAPI校验(枚举不需要解密密码,仅读取元数据)
凭据目标名称、用户名数据原路返回
cmdkey格式化文本输出;**屏蔽密码字段**

链路 2:cmdkey /generic 添加 RDP 凭据

plaintext
cmdkey /generic:TERMSRV/RDS01 /user:admin /pass:xxx
        ↓ 组装CREDENTIAL结构体
调用 CredWriteW()
        ↓ Windows内部调用DPAPI加密密码Blob
VaultSvc写入加密文件到%LOCALAPPDATA%\Microsoft\Credentials
成功返回;RDP客户端mstsc后续连接主动读取该Generic凭据

六、配套联动技术栈(承接之前全套体系)

  1. PowerShell 管道 |
     
    运维批量清理凭据经典用法:
powershell
cmdkey /list | Select-String "TERMSRV" | ForEach-Object { ... }
cmdkey 输出文本流,属于跨 EXE 退化匿名管道模式,返回全部字符串。
  1. mstsc.exe(远程桌面)
     
    mstsc 主动读取TERMSRV/前缀 Generic 凭据,实现自动登录;企业运维最常用组合。
  2. SMB 客户端(mrxsmb.sys)+ net use
     
    访问共享时自动读取 /add 类型凭据;net use 也可写入凭据,底层同样调用 CredMan API。
  3. MEM / ConfigMgr(SCCM)
     
    脚本部署阶段批量预置服务器凭据;任务序列使用 cmdkey 预填充 RDP、文件服务器凭证。
  4. klist.exe(Kerberos)
     
    cmdkey 存储静态账号密码;klist 管理临时会话票据;可配合使用:凭据保存账号,登录后自动申请 TGT 票据。
  5. vaultcmd.exe
     
    cmdkey ↔ vaultcmd 分工:
  • cmdkey:Windows 凭据、通用凭据;
  • vaultcmd:Web 凭据、现代应用 Vault 凭据。
  1. DPAPI、Credential Guard
     
    安全加固核心;开启 CG 后极大提升凭据导出难度,防护 DPAPI 离线提取攻击。

七、典型故障断链场景

  1. cmdkey /list 返回空白,但图形凭据管理器存在记录
     
    原因:32 位程序与 64 位程序凭据空间隔离;32 位 cmdkey 读取不到 64 位进程创建的凭据。
  2. 添加 RDP 凭据无效,mstsc 不自动填充
     
    根因:误用 /add;RDP 必须使用 /generic:TERMSRV/服务器
  3. 报错 0x800706BA RPC 服务器不可用
     
    VaultSvc 服务未启动、崩溃;重启 VaultSvc。
  4. 脚本运行 cmdkey 添加凭据,交互式登录看不到
     
    两种可能:
     
    ① 脚本运行账户与登录账户不一致;
     
    ② 计划任务运行在不同登录会话,凭据写入隔离会话空间。
  5. 凭据反复丢失
     
    用户配置文件漫游损坏、Credential 目录文件损坏;可清空%LOCALAPPDATA%\Microsoft\Credentials重建。

安全风险视角(红队 / 防御视角)

  1. cmdkey 只能枚举名称,不能直接读取明文密码;攻击者必须调用原生 CredRead API 或使用 mimikatz 通过 DPAPI 解密。
  2. 攻击者利用cmdkey /list快速内网资产探测(枚举保存的服务器地址)。
  3. 若获取用户登录上下文,可通过 DPAPI 解密凭据文件,获取所有保存账号密码。
  4. 防御监控:审计 CredEnumerateW、CredWriteW API 调用;监控 cmdkey.exe 进程执行。

八、极简核心总结

  1. cmdkey.exe = Credential Manager 命令行前端,核心工作全部委托 advapi32.dll CredMan API;
  2. 凭据分为 /add(域 / Windows 凭据)、/generic(通用凭据,RDP 必备)两类;
  3. 密码由系统 DPAPI 加密持久化,绑定当前登录用户,cmdkey 本身不负责加密;
  4. 凭据按用户会话隔离,无法跨用户访问;Web 凭据不归 cmdkey 管理;
  5. 典型运维组合:配合 PowerShell 脚本、RDP、SMB、MEM 终端自动化;
  6. 安全边界:仅枚举元数据不输出明文;获取明文必须额外调用原生 API 解密。

control /name Microsoft.CredentialManager

PixPin_2025-09-29_00-08-39

control /name Microsoft.CredentialManager 完整拆解解构

一、基础定位

完整命令:control.exe /name Microsoft.CredentialManager
 
Microsoft.CredentialManager = Windows 控制面板规范名称(Canonical Name),对应图形界面【凭据管理器】
  • 作用:启动控制面板宿主,加载凭据管理器可视化 UI;
  • 等价对照:
    • control /name Microsoft.CredentialManager(标准规范名称写法,Win7~Win11 通用)
    • control keymgr.dll(传统兼容入口,加载 keymgr.dll 旧版界面)
核心区分:二者前端 UI 入口不同,但底层共享同一套 CredMan API、Vault 存储、DPAPI 加密体系;和前文cmdkey.exe共用凭据底层存储。
 
凭据管理器 UI 仅负责可视化浏览、增删凭据;不实现加密、持久存储逻辑
控制面板官方元信息:
 
规范名称:Microsoft.CredentialManager
 
GUID:{1206F5F1-0569-412C-8FEC-3204630DFB70}
 
模块:Vault.dll

二、分层整体架构

plaintext
PowerShell/运行窗口/CMD → control.exe(控制面板宿主进程)
        ↓ 读取注册表匹配 CanonicalName
加载 Vault.dll(凭据管理器UI核心模块)
        ↓ 调用 advapi32.dll Credential API
        ↕ RPC/ALPC 通信
VaultSvc(svchost承载,凭据存储服务)
        ↓ DPAPI 加密/解密(依赖lsass主密钥)
持久存储:用户隔离加密凭据文件

三、底层原理

3.1 control.exe 启动解析流程

  1. control.exe接收参数/name Microsoft.CredentialManager
  2. 查询注册表路径
     
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Namespace\{1206F5F1-0569-412C-8FEC-3204630DFB70}
     
    匹配到模块Vault.dll
  3. control.exe 进程内加载Vault.dll,渲染凭据管理器窗口;
  4. UI 初始化时调用CredEnumerateW()枚举当前登录用户全部凭据。

3.2 UI 与底层凭据子系统交互模型

  1. 读取凭据
     
    UI → Advapi32 CredEnumerateW → VaultSvc 读取用户目录加密 blob → DPAPI 解密元数据(密码默认不直接返回上层 UI,查看密码需要单独触发解密)
  2. 新增 / 修改凭据
     
    UI 表单录入账号密码 → 调用CredWriteW() → 系统内部 DPAPI 加密明文密码 → VaultSvc 写入加密文件
  3. 删除凭据
     
    UI 触发删除 → CredDeleteW() → VaultSvc 移除对应加密凭据条目

3.3 凭据两大分类(UI 界面展示划分)

  1. Windows 凭据(cmdkey.exe 管理范围)
    • 域凭据(CRED_TYPE_DOMAIN_PASSWORD):SMB 共享、NAS、服务器 NetBIOS
    • 通用凭据(CRED_TYPE_GENERIC):RDP TERMSRV/、第三方应用凭证
  2. Web 凭据
    • vaultcmd.exe管理,cmdkey 无法读写 Web 凭据;Edge、IE 浏览器网页密码存放于此,底层独立 Vault 容器。

3.4 安全隔离核心规则

  1. 凭据严格绑定当前登录用户 SID + 登录会话;不同用户、不同会话凭据隔离;
  2. DPAPI 加密密钥由lsass.exe维护;凭据文件复制到其他账户 / 其他电脑无法解密;
  3. Credential Guard 开启后,DPAPI 密钥隔离在 VTL1,防止内存导出攻击;
  4. 普通用户仅能访问自身凭据;系统账户拥有独立凭据隔离空间。

3.5 关键误区澄清

control.exe不存储任何凭据,只是 UI 容器;
 
Vault.dll只是界面层,不实现加密;加密逻辑全部由系统 DPAPI、VaultSvc 承载;
 
❌ 不要混淆:control /name Microsoft.CredentialManagerkeymgr.dll
  • Vault.dll:新版标准凭据管理器(包含 Web 凭据 + Windows 凭据双栏界面)
  • keymgr.dll:旧版简化界面,仅展示 Windows 凭据,无 Web 凭据

四、依赖文件、进程、注册表

4.1 用户态核心文件

文件 路径 功能
control.exe System32 控制面板宿主,解析/name参数
Vault.dll System32 凭据管理器 UI 主模块
advapi32.dll System32 Credential 核心 API(CredEnumerate/CredWrite/CredDelete)
crypt32.dll System32 DPAPI 加密支撑库
vaultcli.dll System32 Vault 底层存储接口

4.2 必需系统进程 & 服务

  1. VaultSvc(Windows 凭据服务)
     
    服务名:VaultSvc;依赖 RPCSS;服务停止 → 凭据管理器打开空白 / 报错 0x800706BA;
     
    承载进程:svchost.exe -k Vault
  2. lsass.exe:维护用户 DPAPI 主密钥、安全令牌校验
  3. conhost.exe(可选):CMD/PowerShell 启动 control.exe 时控制台宿主

4.3 关键注册表

reg
# Microsoft.CredentialManager 控制面板项注册
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Namespace\{1206F5F1-0569-412C-8FEC-3204630DFB70}

# VaultSvc服务配置
HKLM\SYSTEM\CurrentControlSet\Services\VaultSvc

# 凭据委派安全策略
HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation

4.4 持久存储路径(加密文件)

plaintext
%LOCALAPPDATA%\Microsoft\Credentials\
%APPDATA%\Microsoft\Credentials\
%LOCALAPPDATA%\Microsoft\Vault\

4.5 不依赖组件

❌ 不依赖 npfs.sys(命名管道);
 
❌ 不依赖 WMI(仅资产采集时使用 WMI 读取凭据信息,UI 本身不需要);
 
❌ 不依赖 BITS、SMB 驱动。

五、完整逻辑链路(两条典型流程)

链路 1:执行命令打开凭据管理器

plaintext
CMD/PowerShell 运行 control.exe /name Microsoft.CredentialManager
        ↓ control.exe解析参数,查询注册表CanonicalName映射
进程内加载Vault.dll,初始化图形窗口
        ↓ UI调用Advapi32 CredEnumerateW()
ALPC RPC通信至VaultSvc服务
        ↓ VaultSvc读取用户目录加密凭据文件
DPAPI解密凭据元数据(不主动解密密码)
结构化凭据列表返回UI渲染展示

链路 2:UI 界面删除一条 RDP 通用凭据

plaintext
凭据管理器选中 TERMSRV/RDS01 条目 → 点击删除
        ↓ UI调用 CredDeleteW(TargetName)
        ↓ VaultSvc删除对应加密凭据文件
操作完成,刷新凭据列表
底层存储同步更新;cmdkey /list 同步看不到该凭据

六、配套联动技术栈(承接整套体系)

  1. cmdkey.exe
     
    同一底层 CredMan 存储;
  • cmdkey:命令行无界面管理 Windows / 通用凭据;
  • control /name Microsoft.CredentialManager:图形可视化管理;二者操作结果双向实时同步。
  1. PowerShell 管道 |
     
    脚本组合:启动图形界面、配合 cmdkey 批量清理凭据,图形界面用于人工核查结果。
powershell
# 启动凭据管理器
Start-Process control.exe -ArgumentList '/name Microsoft.CredentialManager'
  1. mstsc.exe(远程桌面)
     
    mstsc 读取TERMSRV/前缀通用凭据;UI 界面添加的 RDP 凭据可直接被 mstsc 自动登录识别。
  2. net use / SMB 客户端
     
    访问文件服务器自动读取凭据管理器内域凭据;UI 添加 SMB 凭据生效。
  3. vaultcmd.exe
     
    互补分工:vaultcmd 管理 Web 凭据;凭据管理器 UI 同时展示两类凭据;cmdkey 无法操作 Web 凭据。
  4. MEM / ConfigMgr(SCCM)
     
    运维场景:任务序列脚本使用 cmdkey 预置凭据,通过control /name Microsoft.CredentialManager人工验证凭据是否部署成功。
  5. DPAPI / Credential Guard
     
    安全底座;控制凭据加密强度,防范凭据离线导出。

七、典型故障断链场景

  1. 执行命令打开空白窗口、加载失败,报错 RPC 服务器不可用 0x800706BA
     
    根因:VaultSvc 服务未启动 / 崩溃;修复:net start VaultSvc
  2. cmdkey 添加凭据成功,凭据管理器看不到(反之亦然)
     
    32 位 / 64 位进程凭据空间隔离;SysWOW64 下程序操作凭据和 System32 互相不可见。
  3. 凭据列表可以展示,查看密码时报解密失败
     
    当前登录会话上下文失效;用户配置文件损坏、DPAPI 密钥异常。
  4. 缺少 Web 凭据一栏
     
    使用了control keymgr.dll旧版入口;改用control /name Microsoft.CredentialManager标准命令。
  5. 凭据反复丢失
     
    用户漫游配置文件损坏;Credentials 目录缓存文件损坏。

安全风险视角

  1. 拥有交互式登录权限的用户,可打开凭据管理器查看所有已保存服务器地址,用于内网资产探测;
  2. 获取完整登录上下文后,可通过 DPAPI 解密提取全部明文账号密码;
  3. 加固建议:限制高权限终端交互式登录,启用 Credential Guard,监控Vault.dll加载、CredAPI 调用行为。

八、极简核心总结

  1. control /name Microsoft.CredentialManager = control.exe 通过控制面板规范名称加载Vault.dll,启动标准凭据管理器图形界面;
  2. UI 层仅做可视化展示,所有凭据读写全部调用advapi32.dll CredMan API,底层依赖 VaultSvc 服务 + DPAPI 加密;
  3. cmdkey.exe共享同一凭据存储,操作双向同步;区分:Web 凭据仅新版 UI 可见,cmdkey 无法管理;
  4. control keymgr.dll区别:keymgr.dll 为旧版简化界面,缺失 Web 凭据分类;
  5. 凭据按登录用户隔离,加密绑定用户 SID;无跨用户访问能力;
  6. 运维场景:人工核查凭据首选图形界面,自动化批量操作使用 cmdkey/PowerShell API。

PixPin_2025-09-29_00-09-03

 

PS C:\Users\Administrator> cmdkey /?

创建,显示和删除保存的用户名和密码。

此命令的语法为:

CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]

示例:

  要列出可用的凭据:
     cmdkey /list
     cmdkey /list:targetname

  要创建域凭据:
     cmdkey /add:targetname /user:username /pass:password
     cmdkey /add:targetname /user:username /pass
     cmdkey /add:targetname /user:username
     cmdkey /add:targetname /smartcard

  要创建普通凭据:
     /add 开关可以由 /generic 替代,来创建普通凭据

  要删除现有凭据:
     cmdkey /delete:targetname

  要删除 RAS 凭据:
     cmdkey /delete /ras

cmdkey.exe 参数完整汇总表

命令 子参数 描述 应用场景 使用实例
cmdkey /list 枚举当前用户所有持久凭据(仅展示目标名称、用户名,不显示明文密码 资产清点、排查自动登录凭据、脚本筛选 RDP/SMB 已保存凭证 cmdkey /list
cmdkey /list:targetname 根据目标名称精确匹配,只列出指定 Target 凭据 校验特定服务器凭据是否存在 cmdkey /list:TERMSRV/RDS01
cmdkey /add:targetname 创建Windows 域凭据(CRED_TYPE_DOMAIN_PASSWORD),适用于 SMB、NTLM 服务器、文件共享 访问 NAS、文件服务器、内网 SMB 共享自动认证 cmdkey /add:\\192.168.1.50 /user:admin /pass:P@ss123
cmdkey /add:targetname /user:username /pass:password 添加域凭据,命令行直接附带明文密码 自动化脚本批量预置 SMB 服务器凭证 cmdkey /add:\\FS01 /user:corp\fileadmin /pass:File@2026
cmdkey /add:targetname /user:username /pass 添加域凭据,执行后交互式弹窗输入密码(不在命令行暴露明文) 交互式运维,避免密码明文写入日志 cmdkey /add:\\FS01 /user:corp\fileadmin /pass
cmdkey /add:targetname /user:username 添加域凭据,不指定 /pass,运行时交互式输入密码 临时手动添加 SMB 凭据 cmdkey /add:\\FS01 /user:corp\fileadmin
cmdkey /add:targetname /smartcard 创建绑定智能卡的域凭据,用于智能卡登录资源 企业智能卡认证终端访问内网服务器 cmdkey /add:\\DC01 /smartcard
cmdkey /generic:targetname 创建通用凭据(CRED_TYPE_GENERIC);RDP、第三方应用必须使用该类型,不能用 /add RDP 远程桌面自动登录、自定义应用持久凭证 cmdkey /generic:TERMSRV/RDS01.corp.local /user:admin@corp.local /pass:Rdp@2026
cmdkey /delete:targetname 根据目标名称删除指定凭据 凭据过期清理、更换账号后清除旧凭证 cmdkey /delete:TERMSRV/RDS01.corp.local
cmdkey /delete /ras 删除所有 RAS 拨号凭据(VPN 宽带拨号保存账号) 清理 VPN 拨号缓存凭证、轮换 VPN 账号 cmdkey /delete /ras

重要补充说明

  1. RDP 硬性规则
     
    mstsc 只识别 /generic: 前缀 TERMSRV/xxx 通用凭据;使用 /add 创建的凭据无法被远程桌面客户端读取。
  2. 安全提示
     
    命令行携带 /pass:明文 会被进程日志、命令历史捕获;生产脚本优先使用不带明文的交互式 /pass
  3. 隔离提醒
     
    32 位 cmdkey 与 64 位 cmdkey 凭据空间隔离;在 SysWOW64 下执行会看不到 64 位程序创建的凭据。
  4. 类型区分速记
  • /add → Windows 域凭据:SMB、文件共享、服务器 NetBIOS
  • /generic → 通用凭据:RDP、自定义程序、Web 服务非浏览器凭证

在 PowerShell 中,cmdkey 命令的等效命令是 New-PSDriveGet-Credential,取决于你想要执行的操作。具体来说:

1. 使用 New-PSDrive 创建临时的网络驱动器映射:

如果你用 cmdkey 添加凭据并挂载网络驱动器,可以在 PowerShell 中使用 New-PSDrive 来实现:

powershell
New-PSDrive -Name "DriveName" -PSProvider FileSystem -Root "\\Server\Share" -Persist -Credential (Get-Credential)

这会提示输入凭据并将网络驱动器映射到本地文件系统。

2. 使用 Get-Credential 设置和存储凭据:

如果你希望直接存储凭据,可以使用 Get-Credential 获取凭据对象。然后,可以将凭据存储到 Windows 凭据管理器中(类似于 cmdkey 的用途):

powershell
$credential = Get-Credential

接下来,你可以将凭据传递给其他 cmdlet,或者将其存储到某些应用中。

3. 手动添加凭据到凭据管理器:

虽然 PowerShell 本身没有直接的 cmdkey 等效命令,但你可以通过调用 Windows API 或使用 CredentialManager PowerShell 模块来管理 Windows 凭据。

例如,使用 CredentialManager 模块:

powershell
Install-Module -Name CredentialManager -Force
Add-StoredCredential -Target "TargetName" -UserName "User" -Password "Password"

这相当于通过 cmdkey 命令添加凭据。


在 PowerShell 中,虽然没有直接与 cmdkey 命令完全匹配的命令,但可以使用 CredentialManager 模块和一些 PowerShell 内置命令来实现类似功能。以下是一些常见的用法及其等效的 PowerShell 命令:

1. 列出可用凭据 (cmdkey /list 或 cmdkey /list:targetname)

在 PowerShell 中,你可以使用 Get-StoredCredential 来列出已存储的凭据。首先,确保安装 CredentialManager 模块:

powershell
Install-Module -Name CredentialManager -Force

然后,可以使用 Get-StoredCredential 来列出所有凭据:

powershell
Get-StoredCredential

要列出特定目标的凭据,可以提供目标名称:

powershell
Get-StoredCredential -Target "targetname"

2. 创建域凭据 (cmdkey /add:targetname /user:username /pass:password)

在 PowerShell 中,使用 Add-StoredCredential 来添加凭据。以下是创建域凭据的示例:

powershell
Add-StoredCredential -Target "targetname" -UserName "username" -Password "password" -Persist

如果需要交互式输入密码,您可以使用:

powershell
$credential = Get-Credential
Add-StoredCredential -Target "targetname" -UserName $credential.UserName -Password $credential.GetNetworkCredential().Password -Persist

3. 创建普通凭据 (cmdkey /add:targetname /generic)

要创建普通凭据(即非域凭据),可以使用以下 PowerShell 命令:

powershell
Add-StoredCredential -Target "targetname" -UserName "username" -Password "password" -Persist -Type Generic

4. 删除现有凭据 (cmdkey /delete:targetname)

要删除存储的凭据,使用 Remove-StoredCredential

powershell
Remove-StoredCredential -Target "targetname"

5. 删除 RAS 凭据 (cmdkey /delete /ras)

PowerShell 没有单独的 RAS 凭据删除功能,但你可以删除所有凭据,包括 RAS 凭据。你可以通过列出并删除所有凭据来实现:

powershell
Get-StoredCredential | Where-Object { $_.Target -like "ras*" } | Remove-StoredCredential

6. 删除所有凭据

如果你想要删除所有凭据,可以使用以下命令:

powershell
Get-StoredCredential | Remove-StoredCredential
  • 列出凭据:Get-StoredCredential
  • 创建凭据(域/普通):Add-StoredCredential
  • 删除凭据:Remove-StoredCredential
  • 删除 RAS 凭据:Remove-StoredCredential (结合 Where-Object 筛选 RAS)

这些 PowerShell 命令大致可以替代 cmdkey 的功能,但需要使用第三方 CredentialManager 模块来操作存储的凭据。


cmdkey 命令在 PowerShell 中的使用方法:

操作 命令语法 PowerShell命令示例 描述
列出所有凭据 cmdkey /list cmdkey /list 列出当前存储的所有凭据。这将显示所有存储的凭据,包括用于网络驱动器、远程桌面等服务的凭据。
列出指定目标凭据 cmdkey /list:targetname cmdkey /list:targetname 列出特定目标的凭据。在此命令中替换 targetname 为实际的目标名称(例如服务器、共享等),查看该目标的凭据。
创建域凭据(包含密码) cmdkey /add:targetname /user:username /pass:password cmdkey /add:targetname /user:admin /pass:password123 为指定目标创建凭据。在此命令中,替换 targetname 为目标名称,username 为用户名,password 为密码。创建域凭据用于自动身份验证。
创建域凭据(不含密码) cmdkey /add:targetname /user:username /pass cmdkey /add:targetname /user:admin /pass 为指定目标创建凭据。此命令允许在不输入密码的情况下创建凭据,系统会提示用户在需要时输入密码。
创建域凭据(仅用户名) cmdkey /add:targetname /user:username cmdkey /add:targetname /user:admin 为指定目标创建凭据。此命令仅提供用户名,密码将在需要时手动输入。适用于需要用户确认密码的场景。
使用智能卡创建凭据 cmdkey /add:targetname /smartcard cmdkey /add:targetname /smartcard 使用智能卡进行身份验证。此命令适用于需要通过智能卡进行身份验证的高安全性环境。
创建通用凭据 cmdkey /generic:targetname /user:username /pass:password cmdkey /generic:targetname /user:admin /pass:password123 创建通用凭据。该命令适用于为多个应用或服务创建凭据,通常在需要跨多个资源(如FTP、共享等)访问时使用。
删除凭据 cmdkey /delete:targetname cmdkey /delete:targetname 删除指定目标的凭据。使用此命令清理不再使用的或过时的凭据,以确保凭据存储的安全性和整洁。
删除RAS凭据 cmdkey /delete /ras cmdkey /delete /ras 删除远程访问服务(RAS)凭据。删除为VPN或远程桌面等远程连接创建的凭据。
列出指定目标凭据(重复) cmdkey /list:targetname cmdkey /list:targetname 与 "列出指定目标凭据" 相同,重复的命令列出指定目标的凭据信息。

PowerShell命令的说明:

  • cmdkey 是一个Windows命令行工具,PowerShell同样支持调用它,因此可以直接在PowerShell脚本或命令行中使用这些命令。
  • 通过这些命令,可以管理系统的凭据存储,简化访问远程资源、网络共享、域资源的过程,特别适用于自动化和批处理任务。

你可以在PowerShell窗口中运行这些命令来管理凭据。如果要编写自动化脚本,可以将这些命令结合到PowerShell脚本中执行。


cmdkey 命令的分类表格,包含了详细的示例和对应的应用场景:

功能 命令语法 示例 应用场景
列出所有凭据 cmdkey /list cmdkey /list 列出系统中所有存储的凭据。用于查看当前计算机中存储的用户名和密码,方便检查是否有多余的凭据。
列出指定目标凭据 cmdkey /list:targetname cmdkey /list:targetname 查看指定目标的凭据信息。在进行故障排查或验证凭据时,查看特定目标的凭据信息。
创建域凭据 cmdkey /add:targetname /user:username /pass:password cmdkey /add:targetname /user:admin /pass:password123 用于自动化登录域控制器、文件共享等。例如:在Windows环境中,通过域凭据访问网络驱动器。
  cmdkey /add:targetname /user:username /pass cmdkey /add:targetname /user:admin /pass 需要时自动填充密码。仅指定用户名,之后手动输入密码。适合手动验证密码输入的场景。
  cmdkey /add:targetname /user:username cmdkey /add:targetname /user:admin 创建默认域凭据。不指定密码,适用于从外部验证时临时使用或与其他验证方式结合使用。
  cmdkey /add:targetname /smartcard cmdkey /add:targetname /smartcard 使用智能卡进行身份验证。适合高安全性的环境,比如企业网络,智能卡用于访问机密数据或网络。
创建通用凭据 cmdkey /generic:targetname /user:username /pass:password cmdkey /generic:targetname /user:admin /pass:password123 创建通用凭据。适用于需要访问多个应用程序或服务时,统一管理凭据,简化登录操作。
删除凭据 cmdkey /delete:targetname cmdkey /delete:targetname 删除不再使用的凭据。清理无用的凭据,尤其是访问过时的服务器、应用或服务时。
删除RAS凭据 cmdkey /delete /ras cmdkey /delete /ras 删除远程访问服务(RAS)凭据。适用于清理曾用于VPN或远程桌面连接的凭据。
列出并删除特定目标凭据 cmdkey /list:targetname 与 cmdkey /delete:targetname cmdkey /list:targetname<br>cmdkey /delete:targetname 查看并删除不再需要的特定凭据。用于故障排查和删除过时的登录信息,确保系统中没有多余的凭据存储。

各命令的应用场景说明:

  1. 列出凭据

    • /list:用于管理凭据时查看当前存储的所有凭据。适合管理员定期检查哪些凭据存储在系统中。
    • /list:targetname:当多个凭据存储在系统中时,通过列出指定目标的凭据来快速验证或修改某个特定服务的凭据。
  2. 创建域凭据

    • /add:常用于在系统中自动添加用于访问企业或公司域控制器的凭据。通过 cmdkey 命令可以避免每次访问时手动输入用户名和密码,尤其在设置自动登录或脚本执行时非常有用。
    • /smartcard:在高安全性要求的环境下使用,适合带有智能卡身份验证的系统。用于更安全的登录方式,通常在金融或政府机关中使用。
    • /user 和 /pass:可适用于网络共享、域认证、服务器登录等自动化环境。也可根据需要只输入用户名或密码。
  3. 创建通用凭据

    • /generic:适用于为多个不同应用(如企业内部Web应用、数据库、FTP服务器等)设置统一的凭据,减少记住多个密码的麻烦,常见于集中的认证管理系统。
  4. 删除凭据

    • /delete:清理不再使用的凭据,保证系统中仅存有必要的凭据信息,尤其是当系统或服务过时或已更换时。删除旧凭据能避免潜在的安全风险。
    • /delete /ras:专门用于删除远程访问服务(RAS)凭据,常见于 VPN、远程桌面、远程连接等场景。删除不再使用的远程访问凭据,可以降低安全风险。

cmdkey 命令适用于凭据的管理,特别是在自动化任务、远程连接、域认证和系统维护中。通过合理的使用,可以简化登录操作,提高工作效率,同时确保系统凭据的安全性。


cmdkey 命令的用法整理为分类表格的形式,包含了不同功能的命令示例:

功能 命令语法 示例
列出凭据 cmdkey /list 或 cmdkey /list:targetname 列出所有可用的凭据: cmdkey /list   列出指定目标的凭据: cmdkey /list:targetname
创建域凭据 cmdkey /add:targetname /user:username /pass:password 创建带用户名和密码的域凭据: cmdkey /add:targetname /user:username /pass:password
  cmdkey /add:targetname /user:username /pass 创建带用户名的域凭据,密码为空: cmdkey /add:targetname /user:username /pass
  cmdkey /add:targetname /user:username 创建仅带用户名的域凭据: cmdkey /add:targetname /user:username
  cmdkey /add:targetname /smartcard 使用智能卡创建域凭据: cmdkey /add:targetname /smartcard
创建通用凭据 cmdkey /generic:targetname /user:username /pass:password 创建通用凭据: cmdkey /generic:targetname /user:username /pass:password
删除凭据 cmdkey /delete:targetname 删除指定目标的凭据: cmdkey /delete:targetname
删除RAS凭据 cmdkey /delete /ras 删除RAS凭据: cmdkey /delete /ras
列出指定目标凭据 cmdkey /list:targetname 列出指定目标的凭据: cmdkey /list:targetname

各命令说明:

  • /list:列出所有存储的凭据,或者列出特定目标的凭据。
  • /add:添加新的凭据。可以为域凭据或通用凭据。
    • /generic:创建通用凭据,而非域凭据。
    • /smartcard:使用智能卡进行身份验证。
  • /delete:删除已存储的凭据。可以删除指定的目标凭据,或者删除RAS凭据。

cmdkey /?

创建、显示和删除存储的用户名和密码。

此命令的语法如下:

Copy Code
CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]

示例:

  1. 列出可用的凭据:

    Copy Code
    cmdkey /list
    cmdkey /list:targetname
  2. 创建域凭据:

    Copy Code
    cmdkey /add:targetname /user:username /pass:password
    cmdkey /add:targetname /user:username /pass
    cmdkey /add:targetname /user:username
    cmdkey /add:targetname /smartcard
  3. 创建通用凭据: 使用 /add 开关可以替换为 /generic 来创建通用凭据。

  4. 删除现有凭据:

    Copy Code
    cmdkey /delete:targetname
  5. 删除RAS凭据:

    Copy Code

 

凭证管理器:Web凭证与Windows凭证的详细说明

Windows凭证管理器是Windows操作系统中的一个功能,它帮助用户安全地存储和管理各种凭证(如用户名和密码),这些凭证用于网络访问、共享文件、网站登录等。凭证管理器分为两个主要类别:Web凭证Windows凭证。以下是这两者的详细对比:

类型 Web凭证 Windows凭证
定义 存储用于网页浏览器登录的用户名、密码和其他信息。 存储用于Windows操作系统本地和网络资源访问的凭证(如共享文件夹、远程桌面登录等)。
使用场景 用于在网站或Web应用程序中自动填写用户名和密码。 用于Windows系统的网络资源访问(如共享文件夹、远程桌面、映射网络驱动器等)。
存储位置 存储在Windows凭证管理器中,用于网络或Web服务访问。 存储在本地Windows凭证管理器中,用于系统和网络资源访问。
管理方式 由浏览器自动添加或由用户手动管理。 用户可手动添加、编辑或删除,通常通过控制面板或凭证管理器应用管理。
加密 使用系统加密机制来保护存储在凭证管理器中的Web凭证。 采用与系统安全策略相匹配的加密机制,确保存储的凭证安全。
应用程序 常见的应用包括Microsoft EdgeGoogle Chrome等浏览器。 适用于Windows操作系统中的任何网络、共享、远程桌面等应用。
凭证内容 存储的是网页地址、用户名、密码等Web登录信息。 存储的包括Windows账户、密码、网络地址等信息。
访问方法 通过浏览器的凭证管理工具或凭证管理器查看和管理Web凭证。 可以通过控制面板中的凭证管理器访问、添加或删除Windows凭证。
关联类型 URL网站及其相关的用户名和密码绑定。 网络地址(如共享文件夹路径、远程服务器IP等)及账户绑定。
自动填充 浏览器会自动填充网站登录表单。 自动填写本地网络或系统资源的用户名和密码(如共享文件夹、远程登录)。
删除方式 在浏览器设置或凭证管理器中删除Web凭证。 在凭证管理器中删除Windows凭证。

详细说明

1. Web凭证

  • 功能:Web凭证存储的是与Web浏览器相关的登录信息,通常包括网页地址、用户名和密码。Windows凭证管理器用于保存这些凭证,从而使得用户在访问网页时可以自动填写相关的用户名和密码。
  • 如何管理:大多数现代浏览器(如Microsoft EdgeGoogle Chrome等)都有内置的凭证管理功能,用户在首次登录时可以选择是否保存凭证。保存后的凭证可以通过浏览器的凭证管理器进行查看和删除。
  • 自动填充:浏览器在访问某个网站时会自动填充用户名和密码,以便用户无需再次输入。

2. Windows凭证

  • 功能:Windows凭证主要用于本地网络环境中的凭证管理。它可以保存Windows登录账户信息、共享文件夹的访问凭证、远程桌面登录凭证等。它可以减少每次访问这些资源时手动输入用户名和密码的需要。
  • 如何管理:用户可以通过Windows的控制面板中的凭证管理器来手动添加、编辑或删除这些凭证。对于某些操作(如网络共享、远程桌面连接),系统会自动提示用户保存凭证。
  • 适用场景
    • 共享文件夹:当您访问网络共享文件夹时,系统可能会要求输入凭证。此时,凭证可以存储在Windows凭证管理器中,以便下次自动填充。
    • 远程桌面:在使用远程桌面连接时,您可以选择保存登录凭证,方便下次直接连接。

如何查看和管理这些凭证

1. 查看Web凭证

  • 打开 控制面板,选择 凭证管理器
  • 在 Web凭证 部分,您将看到所有通过浏览器保存的凭证。您可以选择查看、编辑或删除特定的Web凭证。

2. 查看Windows凭证

  • 打开 控制面板,选择 凭证管理器
  • 在 Windows凭证 部分,您将看到所有Windows系统保存的凭证。可以添加新的凭证(例如网络共享、远程桌面连接)或编辑和删除已有的凭证。

通过合理管理 Web凭证和 Windows凭证,用户可以提高工作效率并加强系统的安全性,避免频繁输入用户名和密码。

提供的步骤详细说明了如何通过不同的方式访问和启动 Windows 的 凭据管理器(Credential Manager)。以下是每种方法的概述和步骤:

1. 通过运行命令框启动

  • 按 Win + R 启动运行命令框。
  • 在文本框中输入以下命令:
    Copy Code
    control /name Microsoft.CredentialManager
  • 按 Enter 键,凭据管理器将会打开。

2. 通过文件资源管理器启动

  • 按 Win + E 打开文件资源管理器。
  • 在地址栏中粘贴以下路径:
    Copy Code
    C:\Windows\SysWOW64
  • 找到并右键点击 keymgr.dll 文件,选择 显示更多选项,然后点击 打开方式
  • 选择 Control.exe 来启动凭据管理器。

3. 通过命令提示符启动

  • 按 Win + R 打开运行对话框,输入 cmd,然后按 Ctrl + Shift + Enter 以管理员身份打开命令提示符。
  • 在命令提示符中输入以下命令并按 Enter
    Copy Code
    control.exe keymgr.dll

4. 通过桌面快捷方式启动

  • 按 Win + D 切换到桌面。
  • 右键点击桌面,选择 新建 > 快捷方式
  • 在创建快捷方式窗口中,粘贴以下路径:
    Copy Code
    control.exe /name Microsoft.CredentialManager
  • 完成后点击 下一步,为快捷方式命名,最后点击 完成

5. 通过 PowerShell 启动

  • 按 Win + S 打开 Windows 搜索,输入 PowerShell,然后右键点击 以管理员身份运行
  • 在 PowerShell 窗口中输入以下命令并按 Enter
    Copy Code
    start-process control.exe keymgr.dll

6. 通过批处理文件启动

  • 按 Win + D 切换到桌面。
  • 右键点击桌面,选择 新建 > 文本文档
  • 打开文本文件,并粘贴以下代码:
    Copy Code
    @echo off
    powershell.exe control.exe keymgr.dll
  • 按 Ctrl + Shift + S 保存文件,命名为 CredMgr.bat,然后点击保存。通过双击该批处理文件即可启动凭据管理器。

以上方法提供了不同的方式来快速访问 凭据管理器,您可以根据个人习惯选择最方便的方式。

凭证管理器 (Credential Manager) 安全性分析

凭证管理器 是 Windows 操作系统中的一个工具,用于存储和管理用户的用户名、密码、证书和其他凭证,方便用户在不同应用程序和服务中自动登录。凭证管理器可以存储的凭证类型包括:

  • Windows 凭证:用于 Windows 登录及访问网络共享。
  • Web 凭证:用于网页应用的登录凭证。
  • 通用凭证:用户自定义的其他凭证。

1. 凭证管理器的工作原理

凭证管理器提供了一个图形界面,让用户轻松查看、添加、删除或编辑凭证。在后台,这些凭证会被加密并存储在 Windows 的凭证存储区(Credential Store)中。存储的凭证信息通常被加密存储,只有 Windows 操作系统可以访问。

加密方式: 凭证管理器的存储是基于 Windows 数据保护 API (DPAPI),它可以确保存储的凭证在本地计算机上加密,只有特定的用户(当前登录用户)可以访问这些凭证。

2. 凭证管理器的安全性分析

优点:

  1. 加密存储:

    • 存储的凭证是经过加密的,使用的是系统级别的加密技术(如 DPAPI),这一点使得即使本地文件被泄露,也难以被非授权用户读取。
  2. 简化认证:

    • 用户无需每次输入用户名和密码,凭证管理器会自动填写相关的认证信息,增强了用户体验和生产力,尤其是在多应用、多网站的环境中。
  3. 与 Windows 安全体系集成:

    • 凭证管理器与 Windows 安全机制(如 Windows 登录和 Windows Hello)紧密集成,利用系统的加密和身份验证机制增加了安全性。
  4. 适应多种应用:

    • 凭证管理器支持多种类型的凭证,包括本地计算机的登录凭证、远程桌面连接凭证、VPN、Web 登录等,满足了多种应用场景的需求。

缺点:

  1. 依赖单一密码:

    • 凭证管理器的安全性依赖于用户的登录密码。因此,如果攻击者通过某种方式破解或获取了用户的密码(例如,通过键盘记录器、社交工程攻击等),他们就能访问凭证管理器存储的所有凭证。
  2. 无法跨系统共享:

    • 凭证管理器仅限于单台计算机上存储和使用的凭证。如果您需要在多个设备上访问同一凭证(例如,在桌面和移动设备上共享密码),则无法方便地实现,除非使用第三方密码管理工具。
  3. 缓存漏洞:

    • 尽管凭证管理器加密存储密码,但在某些情况下(例如应用程序崩溃或操作系统漏洞),这些凭证可能会以明文形式暴露给恶意程序。如果系统被入侵,攻击者可能会借此获取凭证信息。
  4. 自动填充可能被滥用:

    • 自动填充功能是凭证管理器的一个优势,但它也可能带来一些安全隐患。如果恶意软件能够获取系统的登录凭证,或者用户在访问不安全网站时,自动填写的凭证可能会被泄露。
  5. 锁屏后的保护:

    • 如果用户离开计算机且没有锁定计算机(例如,启用屏幕保护程序后),凭证管理器的凭证可能会被未经授权的人员访问。

3. 凭证管理器的密码强度和安全性分析

密码强度

凭证管理器存储的密码强度主要取决于以下几个方面:

  1. Windows 用户密码:

    • 凭证管理器存储的凭证通常与用户的 Windows 登录密码相关。Windows 提供多种密码保护选项,包括复杂密码、PIN 码(在 Windows Hello 下)、生物识别(指纹、面部识别)等。为了确保凭证管理器的安全,用户应确保使用强密码。
  2. 密码生成与管理:

    • 虽然凭证管理器提供了方便的凭证存储,但它本身并不提供密码生成和管理功能。如果用户手动创建密码并添加到凭证管理器,则密码的强度取决于用户的密码选择。建议使用长、复杂且包含字母、数字和符号的密码,以增加密码的安全性。
  3. Windows Hello:

    • 对于启用了 Windows Hello 的设备,使用生物识别(如指纹或面部识别)作为身份验证方式时,凭证管理器的安全性相对较高,因为这种认证方式不依赖于传统的密码,而是依赖于硬件加密和生物识别技术。

密码强度建议:

  • 最小长度: 推荐至少使用 12 个字符。
  • 字符组合: 密码应包含大写字母、小写字母、数字和符号。
  • 避免常见密码: 避免使用如 123456 或 password 这样的弱密码。

多因素认证 (MFA) 的引入:

  • 虽然凭证管理器本身不支持多因素认证,但启用操作系统或应用程序级别的 MFA 可以进一步增强凭证存储的安全性。使用 MFA 时,即便凭证管理器中的凭证被盗取,攻击者仍然需要第二个身份验证因素(如手机验证码)来完成认证。

4. 如何增强凭证管理器的安全性

  1. 使用强密码:

    • 确保您的 Windows 登录密码强度足够,并且定期更换密码。
  2. 启用屏幕保护程序:

    • 启用自动锁定功能,确保计算机在离开时自动锁定,防止未经授权的人员访问凭证管理器。
  3. 使用 Windows Hello:

    • 启用 Windows Hello 或其他生物识别技术,避免依赖传统的密码。
  4. 定期审查和删除过期凭证:

    • 定期审查凭证管理器中的凭证,删除不再使用的凭证或过期的凭证,减少潜在的安全风险。
  5. 避免第三方应用滥用凭证管理器:

    • 确保您只在可信的应用程序和服务中使用凭证管理器,避免将凭证存储在不可信的应用中。

 

凭证管理器是一个便捷的工具,用于存储和管理多个服务的登录凭证,但它的安全性依赖于操作系统的整体安全性以及用户的密码管理策略。通过使用强密码、启用多因素认证和生物识别技术等方式,可以进一步增强凭证管理器的安全性。如果使用得当,凭证管理器是一个相对安全且高效的工具,有助于用户在各种服务中进行安全的身份验证。

 

cmdkey.exe 是 Windows 操作系统中的一个命令行工具,用于管理存储在凭据管理器(Credential Manager)中的凭据信息。它允许用户在命令行中添加、删除、列出和显示存储的凭据,通常用于简化对网络资源、服务器或其他系统的身份验证过程。

具体来说,cmdkey.exe 主要用于以下几个功能:

  1. 添加凭据:将用户名和密码或其他凭据信息添加到凭据管理器中,以便后续无需手动输入即可登录到特定资源。

  2. 删除凭据:从凭据管理器中移除不再需要的凭据信息,以确保安全性和管理的简洁性。

  3. 列出凭据:显示当前存储在凭据管理器中的所有凭据信息,包括每个凭据的目标名称和类型。

  4. 显示凭据:显示特定目标的详细凭据信息,如用户名和密码。

这些功能使得 cmdkey.exe 成为管理员或系统集成自动化脚本中常用的工具,特别是在需要大规模管理凭据或自动化登录过程的情况下。


cmdkey.exe 起源于微软的 Windows 操作系统。它是为了简化和改进在 Windows 平台上管理用户凭据(Credentials)的过程而开发的命令行工具。凭据管理在计算机网络中是一个关键的部分,特别是当用户需要访问多个网络资源或服务时。在早期的 Windows 版本中,管理凭据通常需要手动输入用户名和密码,或者使用存储在文本文件或其他不安全位置的凭据信息。

为了提供更安全和更高效的凭据管理解决方案,微软引入了凭据管理器(Credential Manager)和相关的命令行工具 cmdkey.exe。这使得用户和管理员可以轻松地在命令行或脚本中管理凭据,而无需依赖于手动输入或不安全的凭据存储方式。

随着 Windows 版本的更新和安全性需求的提高,cmdkey.exe 和凭据管理器持续得到改进和优化,以满足不断变化的 IT 管理和安全需求。

 cmdkey.exe 是微软为了简化和增强 Windows 操作系统中的凭据管理而开发的命令行工具,它的目的是提高安全性、便利性和管理效率。


cmdkey.exe 是Windows操作系统中的一个命令行实用程序,用于管理凭据(credentials)。凭据可以是用户名和密码的组合,用于身份验证到不同的资源,例如网络共享、Web应用程序或其他网络服务。以下是 cmdkey.exe 的主要发展阶段和功能更新:

发展阶段

  1. 初期版本

    • 最早版本的 cmdkey.exe 主要支持基本的凭据管理功能,如添加、删除和列出凭据。
  2. Windows XP 和 Server 2003

    • 引入了对域凭据的支持,允许管理与Windows域相关的凭据。
    • 提升了对安全性和权限管理的支持。
  3. Windows Vista 和 Server 2008

    • 增强了对智能卡凭据的管理能力。
    • 引入了更多的命令选项和参数,提升了灵活性和控制能力。
  4. Windows 7 和 Server 2008 R2

    • 改进了对Windows凭据管理器的集成和支持。
    • 引入了更多的安全特性,如安全传输协议和加密存储。
  5. Windows 8 和 Server 2012

    • 提升了与其他Windows安全工具和服务的集成,如Active Directory和Group Policy。
    • 改进了用户界面和交互性,使得管理更加直观和易用。
  6. Windows 10 和 Server 2016

    • 进一步改进了安全性和凭据管理的性能。
    • 引入了更多面向企业和云服务的功能,如Azure凭据集成。
  7. 最新版本

    • 持续更新和改进,以适应现代化的安全需求和网络环境。
    • 支持更复杂的身份验证场景和集成需求。

总结

cmdkey.exe 作为Windows操作系统的一部分,随着每个主要版本的发布而持续演变和改进。它的发展主要集中在增强凭据管理的功能、安全性和易用性,以应对不断变化的网络安全挑战和技术环境。


cmdkey.exe 主要用于管理 Windows 系统中的凭据信息,其功能可以大致分为以下几类:

  1. 添加凭据

    • 使用 cmdkey /add 命令可以将凭据信息添加到凭据管理器中,以便后续访问特定的网络资源或服务时自动提供身份验证信息。
  2. 删除凭据

    • 使用 cmdkey /delete 命令可以从凭据管理器中删除不再需要的凭据信息,确保管理的安全性和简洁性。
  3. 列出凭据

    • 使用 cmdkey /list 命令可以列出当前存储在凭据管理器中的所有凭据信息,包括每个凭据的目标名称和类型。
  4. 显示凭据

    • 使用 cmdkey /target 命令可以显示特定目标的详细凭据信息,如用户名和密码。
  5. 更新凭据

    • 虽然 cmdkey.exe 主要用于添加和删除凭据,但它也可以通过重新添加具有相同目标的凭据来更新已存在的凭据信息。
  6. 帮助和支持

    • cmdkey.exe 还支持帮助命令,可以使用 cmdkey /? 或 cmdkey /h 查看命令的帮助文档,了解每个命令的使用方式和参数选项。

这些功能使得 cmdkey.exe 成为管理员在管理 Windows 系统中的网络凭据时一个有力的工具,特别是在需要自动化和批量管理凭据信息时尤为重要。


cmdkey.exe 的底层原理涉及到 Windows 操作系统中的凭据管理器(Credential Manager)和安全存储机制。以下是 cmdkey.exe 的基本底层原理:

  1. 凭据管理器(Credential Manager)

    • Windows 提供了一个统一的凭据管理器,用于存储和管理用户的身份验证信息,如用户名、密码、数字证书等。这个管理器存储在系统的安全存储区域中,确保凭据的安全性和保密性。
  2. 命令行接口

    • cmdkey.exe 提供了一个命令行界面,允许用户和脚本直接与凭据管理器进行交互。通过命令行,管理员可以添加、删除、列出和显示存储在凭据管理器中的凭据信息。

      cmdkey /?

      创建,显示和删除保存的用户名和密码。

      此命令的语法为:

      CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]

      示例:

        要列出可用的凭据:
           cmdkey /list
           cmdkey /list:targetname

        要创建域凭据:
           cmdkey /add:targetname /user:username /pass:password
           cmdkey /add:targetname /user:username /pass
           cmdkey /add:targetname /user:username
           cmdkey /add:targetname /smartcard

        要创建普通凭据:
           /add 开关可以由 /generic 替代,来创建普通凭据

        要删除现有凭据:
           cmdkey /delete:targetname

        要删除 RAS 凭据:
           cmdkey /delete /ras

       
  3. 存储安全

    • 凭据信息存储在 Windows 系统的安全存储区域中,通常是加密的。这确保了即使在物理访问到计算机或者通过网络攻击时,也很难获取到明文的凭据信息。
  4. 调用系统 API

    • cmdkey.exe 在执行命令时,实际上是调用了 Windows 提供的凭据管理 API。这些 API 提供了对凭据管理器的底层访问权限,允许进行凭据的添加、删除和修改操作。

      在 Windows 系统中,用于管理凭据的 API 主要包括以下几个关键的 API:

      1. CredRead

        • 这个 API 允许应用程序读取凭据管理器中存储的凭据信息。通过提供目标名称,应用程序可以获取该目标的用户名、密码等凭据信息。
      2. CredWrite

        • 这个 API 允许应用程序向凭据管理器中写入新的凭据信息。应用程序可以指定目标名称、用户名、密码等信息,并将这些信息安全地存储在凭据管理器中。
      3. CredDelete

        • 使用这个 API,应用程序可以从凭据管理器中删除特定的凭据信息。需要提供目标名称和存储的凭据信息,以确保删除正确的凭据。
      4. CredEnumerate

        • 这个 API 允许应用程序列举凭据管理器中存储的所有凭据信息。通过遍历所有的凭据,应用程序可以获取所有存储的目标名称和相关的凭据信息。
      5. CredUIPromptForCredentials

        • 这个 API 提供了一个标准的用户界面,用于提示用户输入凭据信息。应用程序可以使用这个 API 弹出一个对话框,用户可以在其中输入用户名和密码等凭据信息。

      这些 API 提供了对凭据管理器的底层访问权限,使得应用程序能够直接与 Windows 凭据管理器进行交互,进行凭据的添加、删除、修改和读取操作。这些操作确保了凭据信息的安全存储和管理。

  5. 权限控制

    • 凭据管理涉及到系统级别的权限控制,确保只有授权的用户或程序可以对凭据进行操作。这些权限通常由系统管理员或具有适当权限的用户管理。

 cmdkey.exe 是一个通过命令行接口与 Windows 凭据管理器交互的工具,利用系统提供的安全存储和 API,确保了凭据信息的安全性和管理的便捷性。


 

cmdkey /?

创建,显示和删除保存的用户名和密码。

此命令的语法为:

CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]

示例:

  要列出可用的凭据:
     cmdkey /list
     cmdkey /list:targetname

  要创建域凭据:
     cmdkey /add:targetname /user:username /pass:password
     cmdkey /add:targetname /user:username /pass
     cmdkey /add:targetname /user:username
     cmdkey /add:targetname /smartcard

  要创建普通凭据:
     /add 开关可以由 /generic 替代,来创建普通凭据

  要删除现有凭据:
     cmdkey /delete:targetname

  要删除 RAS 凭据:
     cmdkey /delete /ras

 

cmdkey.exe 是 Windows 系统中的一个命令行工具,用于管理凭据。它的主要功能是管理存储在 Windows 凭据管理器中的凭据信息。凭据管理器是一个安全存储凭据的地方,通常用于存储密码、证书等敏感信息。

架构和工作原理

  1. 命令行工具

    • cmdkey.exe 是一个命令行工具,可以通过命令行参数来执行不同的操作,如添加、删除、列出凭据等。
  2. 调用 Windows 凭据管理 API

    • 在内部实现上,cmdkey.exe 实际上调用了 Windows 提供的凭据管理 API。这些 API 允许程序对凭据管理器进行底层操作,包括读取、写入、删除和列举凭据。
  3. 管理凭据

    • cmdkey.exe 可以执行以下几种主要操作:
      • 添加凭据:通过 /add 参数指定目标名称、用户名和密码等信息,将凭据添加到凭据管理器中。
      • 删除凭据:通过 /delete 参数指定目标名称,删除凭据管理器中的指定凭据。
      • 列出凭据:通过 /list 参数,列出所有存储在凭据管理器中的凭据信息。
      • 其他操作:还可以执行更新凭据信息等操作,具体取决于命令行参数的使用方式。
  4. 安全性考虑

    • 凭据管理器和 cmdkey.exe 的设计考虑了安全性和保密性,确保存储的凭据信息被加密和安全地存储。这些凭据在需要时可以被应用程序使用,而不必明文存储密码或其他敏感信息。
  5. 适用场景

    • cmdkey.exe 通常用于脚本或命令行环境中,例如在批处理文件或 PowerShell 脚本中管理网络共享凭据、远程服务器凭据等场景。它提供了一种便捷的方式来管理这些敏感信息,而无需手动操作 Windows 凭据管理器界面。

 cmdkey.exe 架构简单而有效,通过调用 Windows 的凭据管理 API,实现了对凭据的基本管理功能,为系统管理员和脚本编写者提供了方便和安全的凭据管理工具。


cmdkey.exe 在 Windows 系统中有多种实际应用场景,主要涉及到凭据管理和网络资源访问的自动化。以下是一些常见的应用场景:

  1. 管理网络共享凭据

    • 在企业网络中,经常需要访问多个共享文件夹或资源。使用 cmdkey.exe 可以将访问这些资源所需的用户名和密码保存在凭据管理器中,使得用户可以在不重复输入密码的情况下访问这些资源。
  2. 管理远程服务器凭据

    • 对于系统管理员来说,经常需要管理多台远程服务器的凭据信息。通过 cmdkey.exe 可以将远程服务器的登录凭据保存在凭据管理器中,以便远程管理工具或脚本自动登录而无需手动输入密码。
  3. 自动化脚本和任务

    • 在脚本编写中,可以使用 cmdkey.exe 在脚本中自动管理凭据。例如,定期执行备份任务时,可以使用存储在凭据管理器中的凭据信息自动连接到数据库服务器或存储位置。
  4. 远程连接管理

    • 对于远程桌面连接或其他远程管理工具,可以通过 cmdkey.exe 预先保存登录远程计算机所需的凭据,以便快速连接而不用每次输入密码。
  5. 批处理和自动化任务

    • 在批处理脚本或自动化任务中,可以利用 cmdkey.exe 在脚本运行期间管理凭据,确保脚本可以顺利执行所需的操作而不会因为凭据问题而中断。

 cmdkey.exe 是一个方便的工具,特别适用于需要自动化管理凭据和访问网络资源的场景,能够提高系统管理的效率并确保安全地管理凭据信息。


当使用 cmdkey.exe 进行凭据管理时,以下是一个初级使用教程的大纲,可以帮助你快速了解如何使用这个命令行工具:

1. 添加凭据

  • 命令cmdkey /add:targetname /user:username /pass:password
  • 说明:将指定的目标名称(如服务器地址或共享文件夹路径)、用户名和密码添加到凭据管理器中。
  • 示例cmdkey /add:server.domain.com /user:Administrator /pass:Pa$$w0rd

2. 删除凭据

  • 命令cmdkey /delete:targetname
  • 说明:从凭据管理器中删除指定目标名称的凭据。
  • 示例cmdkey /delete:server.domain.com

3. 列出凭据

  • 命令cmdkey /list
  • 说明:列出所有当前存储在凭据管理器中的凭据信息。
  • 示例cmdkey /list

4. 更新凭据

  • 说明cmdkey.exe 本身不支持直接更新已有凭据,通常是先删除旧的凭据,然后再添加更新后的凭据。

5. 清除所有凭据

  • 命令cmdkey /clear
  • 说明:清除凭据管理器中的所有凭据信息。
  • 示例cmdkey /clear

6. 帮助和参数

  • 命令cmdkey /? 或 cmdkey /help
  • 说明:获取关于 cmdkey.exe 命令的帮助信息和详细的参数列表。

注意事项

  • 使用 cmdkey.exe 添加或管理凭据时,请确保在安全的环境下操作,避免在明文密码下使用此命令。
  • 凭据管理器存储的信息会受到 Windows 系统安全性的保护,但仍需谨慎处理以确保敏感信息的安全性。

这些基本操作足以帮助你开始使用 cmdkey.exe 进行凭据管理,适用于管理远程服务器、网络共享或其他需要认证的资源访问。


中级使用者,进一步了解 cmdkey.exe 的功能和高级用法可以更好地管理和优化凭据管理。以下是一个中级使用教程的大纲,涵盖了更复杂的场景和功能:

1. 使用域凭据

  • 命令cmdkey /add:targetname /user:username@domain /pass:password
  • 说明:添加域用户的凭据,指定目标名称、完整的用户名(包括域名)和密码。
  • 示例cmdkey /add:server.domain.com /user:domain\Administrator /pass:Pa$$w0rd

2. 针对网络凭据的操作

  • 命令cmdkey /generic:targetname /user:username /pass:password
  • 说明:对于不特定于某个协议的通用网络凭据管理,可以使用 /generic 参数。
  • 示例cmdkey /generic:ftp://ftp.domain.com /user:ftpuser /pass:Pa$$w0rd

3. 导出和导入凭据

  • 命令cmdkey /list > credentials.txt
    • 说明:将当前存储的凭据列表导出到文本文件中,便于备份或批量管理。
  • 命令cmdkey /import credentials.txt
    • 说明:从文本文件中导入凭据,用于恢复或批量添加凭据。

4. 使用凭据管理器控制台(Credential Manager)

  • 命令rundll32.exe keymgr.dll,KRShowKeyMgr
    • 说明:打开凭据管理器控制台,提供图形界面来管理和查看存储的凭据信息。

5. 脚本化和批处理自动化

  • 示例:结合批处理脚本或 PowerShell 脚本,实现自动化添加、更新和删除凭据的操作。
  • 说明:在自动化任务中使用 cmdkey.exe 可以避免手动输入和管理凭据,提高效率和一致性。

6. 多种凭据类型的管理

  • 说明cmdkey.exe 不仅支持密码认证的网络资源,还可以管理使用智能卡等其他凭据类型的网络资源访问。

注意事项和安全性建议

  • 在使用 cmdkey.exe 进行操作时,应当注意安全性措施,如使用安全存储和传输密码等。
  • 凭据管理器存储的凭据信息可能会影响系统和网络安全,因此应根据最佳实践进行管理和控制。

通过掌握这些中级功能和技巧,你可以更灵活地利用 cmdkey.exe 来管理复杂的网络凭据和自动化任务,提升管理效率和安全性。


高级使用者,cmdkey.exe 提供了更多复杂和精细化的管理功能,特别是在大型网络环境或需要高度自动化的场景下。以下是一个高级使用教程的大纲,涵盖了更深入的功能和技巧:

1. 使用命令行参数进一步控制凭据

  • 命令cmdkey /list:[targetname | * | /domain:domainname]

    • 说明:列出特定目标、所有凭据或特定域下的所有凭据。这可以帮助你精确查找和管理特定凭据。
  • 命令cmdkey /delete:[targetname | /ras]

    • 说明:删除特定目标的凭据或清除 RAS (远程访问服务) 的所有凭据。适用于定期清理和管理凭据库。

2. 使用凭据分组和策略

  • 命令cmdkey /add /smartcard:targetname

    • 说明:添加智能卡凭据,适用于需要使用智能卡进行身份验证的系统。
  • 命令cmdkey /generic:targetname /add

    • 说明:添加通用凭据而无需指定明文密码,适用于需要更安全管理凭据的情况。

3. 高级脚本化和集成

  • 示例:使用 PowerShell 脚本或其他脚本语言与 cmdkey.exe 集成,实现更复杂的凭据管理任务,如定时更新、批量操作等。

4. 高级安全和审计功能

  • 命令cmdkey /setglobalcreds /credui:[targetname | /show]
    • 说明:设置全局凭据以供后续使用,或者显示用户界面以交互式管理凭据。这可以增强安全性和用户控制。

5. 结合其他安全工具和系统管理

  • 示例:结合 Active Directory、LDAP 或其他身份验证和访问控制工具,实现更深度的集成和自动化管理。

6. 进阶凭据管理和追踪

  • 命令cmdkey /target:targetname /list | /list | /list:domainname
    • 说明:通过详细的列表命令,获取凭据的更多信息,如创建时间、最后修改时间等,以进行审计和追踪。

7. 注意事项和最佳实践

  • 安全性:确保在处理凭据时使用安全的传输和存储方式,如加密和安全传输协议。
  • 权限控制:确保只有授权的用户或管理员可以访问和管理凭据。
  • 周期性审计:定期审计和清理不再需要的凭据,以降低安全风险。

通过掌握这些高级功能和技巧,你可以更有效地管理和保护网络凭据,确保系统和数据的安全性,并优化运维效率。


cmdkey.exe 专家级使用教程大纲

1. 基本命令和功能介绍

  • 命令cmdkey /listcmdkey /addcmdkey /delete
  • 功能:列出、添加和删除存储在 Windows 凭据管理器中的凭据。

2. 凭据类型和管理

  • 命令cmdkey /genericcmdkey /domaincmdkey /smartcard
  • 功能:管理通用凭据、域凭据和智能卡凭据,适应不同的身份验证需求。

3. 高级参数和选项

  • 命令cmdkey /list:[targetname | * | /domain:domainname]
  • 功能:详细控制凭据的列出,支持通配符和特定域的筛选。

4. 安全和追踪

  • 命令cmdkey /setglobalcredscmdkey /credui
  • 功能:设置全局凭据,显示用户界面以交互管理凭据,增强安全性和用户控制。

5. 批处理和脚本化

  • 示例:使用 PowerShell 脚本集成 cmdkey.exe 命令,实现自动化凭据管理和更新。

6. 审计和监控

  • 命令cmdkey /target:targetname /list
  • 功能:列出指定目标的详细凭据信息,包括创建时间和最后修改时间,用于审计和追踪。

7. 高级集成和管理

  • 结合工具:结合 Active Directory、LDAP 或其他身份验证工具,实现更复杂的凭据管理和集成。

8. 最佳实践和安全建议

  • 安全传输:使用加密和安全传输协议处理敏感凭据。
  • 权限控制:确保只有授权用户可以访问和管理凭据。
  • 周期性审计:定期审计和清理不再需要的凭据,以减少安全风险。

通过掌握以上专家级功能和技巧,可以更精确地管理和保护存储在 Windows 凭据管理器中的凭据,确保系统和数据的安全性,提高运维效率和安全性管理水平。


cmdkey.exe 顶级使用教程大纲

1. 基础命令和操作

  • 命令cmdkey /listcmdkey /addcmdkey /delete
  • 功能:列出、添加和删除存储在 Windows 凭据管理器中的凭据。

2. 凭据类型和管理

  • 命令cmdkey /genericcmdkey /domaincmdkey /smartcard
  • 功能:管理通用凭据、域凭据和智能卡凭据,适应不同的身份验证需求。

3. 高级参数和选项

  • 命令cmdkey /list:[targetname | * | /domain:domainname]
  • 功能:详细控制凭据的列出,支持通配符和特定域的筛选。

4. 安全和追踪

  • 命令cmdkey /setglobalcredscmdkey /credui
  • 功能:设置全局凭据,显示用户界面以交互管理凭据,增强安全性和用户控制。

5. 批处理和脚本化

  • 示例:使用 PowerShell 脚本集成 cmdkey.exe 命令,实现自动化凭据管理和更新。

6. 审计和监控

  • 命令cmdkey /target:targetname /list
  • 功能:列出指定目标的详细凭据信息,包括创建时间和最后修改时间,用于审计和追踪。

7. 高级集成和管理

  • 结合工具:结合 Active Directory、LDAP 或其他身份验证工具,实现复杂的凭据管理和集成。

8. 安全最佳实践和高级功能

  • 安全传输:使用加密和安全传输协议处理敏感凭据。
  • 权限控制:确保只有授权用户可以访问和管理凭据。
  • 周期性审计:定期审计和清理不再需要的凭据,以减少安全风险。

9. 故障排除和高级技巧

  • 命令cmdkey /?cmdkey /debug
  • 功能:查看帮助文档和调试凭据管理过程,解决常见问题和调整性能。

结论

掌握以上顶级功能和技巧,使您能够高效、安全地管理和保护存储在 Windows 凭据管理器中的凭据,提升系统安全性和管理效率,适用于复杂网络环境和安全要求高的场景。


 

posted @ 2024-07-17 07:30  suv789  阅读(1535)  评论(0)    收藏  举报