当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

作者:精品下载站 日期:2024-12-14 23:07:30 浏览:11 分类:玩电脑

使用 Windows 凭据管理器管理保存的密码


Windows 凭据管理器允许保存凭据(用户名和密码)以访问网络资源、网站和应用程序。使用 Windows 凭据管理器,您可以自动连接到远程资源,而无需输入密码。应用程序可以自行访问凭据管理器并使用保存的密码。

使用凭据管理器在 Windows 中存储密码

凭据管理器出现在 Windows 7 中,被定位为保存密码的相当安全的地方。

Windows 10 上的凭据管理器可以保留以下帐户类型:

  • Windows 凭据——登录 Windows 或访问远程计算机的凭据、保存的 RDP 连接密码、具有集成 Windows 身份验证支持的网站密码等;

    Windows 凭据管理器不存储自动登录 Windows 的凭据或域缓存凭据。

  • 基于证书的凭证 - 使用智能卡进行身份验证;

  • 通用凭证 - 由与凭证管理器兼容的第三方应用程序使用;

  • 网络凭据 - 在 Edge 和 IE、Microsoft 应用程序(MS Office、Teams、Outlook、Skype 等)中保存的密码。

例如,如果您启用“

Save Password

”选项访问共享网络文件夹时,您输入的密码将保存在凭据管理器中。

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

同样,连接到远程 RDP/RDS 主机的密码也保存在远程桌面连接 (mstsc.exe) 客户端中。

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

此外,如果使用 runas /savecred 命令保存用户密码,则凭据管理器会保留用户密码。

您可以从经典的控制面板 (

Control Panel\User Accounts\Credential Manager

)。

正如你所看到的,我们之前保存的凭据管理器中有两个密码。

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

RDP 连接的保存密码在

TERMSRV\hostname

格式。

您可以在此处添加已保存的凭据、对其进行编辑(您无法在图形界面中查看已保存的密码)或删除任何条目。

此外,您还可以使用存储的用户名和密码的经典界面来管理保存的密码。要调用它,请运行以下命令:

rundll32.exe keymgr.dll,KRShowKeyMgr

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

在这里您还可以管理保存的凭据,并且它具有一些凭据管理器的备份和恢复功能(您可以使用它们将凭据管理器数据库传输到另一台计算机)。

vaultcmd

工具用于从命令提示符管理凭据管理器。例如,要显示已保存的 Windows 凭据的列表,请运行以下命令:

vaultcmd /listcreds:"Windows Credentials"

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

Credential schema: Windows Domain Password Credential
Resource: Domain:target=mun-dc01
Identity: RESDOM\j.brion
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfAc)

以下命令将从凭据管理器中删除所有保存的 RDP 密码:

For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H

所有保存的密码都存储在Windows 保管库中。 Windows Vault 是一个受保护的存储,用于保存机密、密码和其他敏感用户信息。在 Windows Vault 中,数据是结构化的,看起来像属于 Vault 方案的一组条目。 Windows Vault 条目的加密密钥集存储在 Policy.vpol 文件中。

对于域用户,它位于

%userprofile%\AppData\Roaming\Microsoft\Vault

对于本地用户,您可以在

%userprofile%\AppData\Local\Microsoft\Vault

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

使用凭证管理器时,VaultSvc 服务必须正在运行:

Get-Service VaultSvc

如果该服务被禁用,您在尝试访问凭据管理器时将看到以下错误:

Credential Manager Error
The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service.
Error code: 0x800706B5
Error Message: The interface is unknown.

如果要阻止用户在凭据管理器中保存网络密码,请在“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”下启用网络访问:不允许存储网络身份验证的密码和凭据GPO 选项。

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

然后,如果用户尝试将密码保存到 Windows 保管库存储,他们将看到以下错误:

Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.

从 PowerShell 访问 Windows 凭据管理器

Windows 没有内置 cmdlet 来从 PowerShell 访问 PasswordVault 存储。但您可以使用 PowerShell 库中的 CredentialManager 模块。

安装模块:

Install-Module CredentialManager

您可以在 CredentialManager 模块中显示 cmdlet 列表:

Get-Command -module CredentialManager

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

该模块只有 4 个 cmdlet:

  • Get-StoredCredential

    - 从 Windows Vault 获取凭据;

  • Get-StrongPassword

    - 生成随机密码;

  • New-StoredCredential

    - 添加凭据;

  • Remove-StoredCredential

    - 删除凭据。

为了将新凭据添加到 Windows 凭据管理器,请运行以下命令:

New-StoredCredential -Target 'a-d' -Type Generic -UserName '[email protected]' -Password 'Pass321-b' -Persist 'LocalMachine'

[玩转系统] 使用 Windows 凭据管理器管理保存的密码

要确保凭证管理器中是否存在任何已保存的用户凭证:

Get-StoredCredential -Target a-d

您可以在 PowerShell 脚本中使用凭证管理器中保存的密码。例如,我可以从 Windows Vault 获取保存的名称和密码作为 PSCredential 对象,并从 PowerShell 连接到 Exchange Online:

$psCred = Get-StoredCredential -Target "a-d"
Connect-MSolService -Credential $psCred

另请注意,您可以使用新的 PowerShell 秘密管理模块在 Windows 中安全地存储密码。它支持多种密码保管库:KeePass、LastPass、HashiCorp Vault、Azure Key Vault、Bitwarden。

要从 Windows Vault 中删除凭据,请运行以下命令:

Remove-StoredCredential -Target a-d

您无法使用内置 CLI 工具将密码显示为纯文本。但是,您可以使用类似 Mimikatz 的实用程序来获取保存的密码

credman

作为纯文本(请参阅此处的示例)。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯