在 PowerShell 中使用凭证管理器模块

Marion Paul Kenneth Mendoza 2023年1月30日
  1. 在 PowerShell 中使用凭证管理器模块
  2. 在 PowerShell 中创建、检索和删除存储的凭证
在 PowerShell 中使用凭证管理器模块

PowerShell 是大规模监管 Credential Manager 的最佳工具。不幸的是,最新的 Windows 操作系统版本不包括 PowerShell cmdlet。

值得庆幸的是,我们为凭证管理器提供了一个 PowerShell 模块,并通过 PowerShell 库提供了它。

本文将讨论在 PowerShell 中安装凭证管理器模块并利用其命令来管理我们存储的密码。

在 PowerShell 中使用凭证管理器模块

要使用此模块,请打开提升的 Windows PowerShell 窗口,然后输入以下命令:

Install-Module -Name CredentialManager

上面的命令将安装凭证管理器模块,而无需我们手动下载任何东西。

不幸的是,Credential Manager 模块的指南或文档并不多。但是,该模块相对易于使用。凭证管理器模块由三个命令组成:

Get-StoredCredential
New-StoredCredential
Remove-StoredCredential

与任何其他 PowerShell cmdlet 一样,我们可以使用 PowerShell 的 Get-Help cmdlet 显示任何这些 cmdlet 的语法。我们必须输入 Get-Help,然后输入我们需要帮助的 cmdlet 名称。

例如,如果我们想查看 Get-StoredCredential cmdlet 的语法,我们可以输入:

Get-Help Get-StoredCredential

在 PowerShell 中创建、检索和删除存储的凭证

让我们看看如何创建、检索和删除存储的凭证。

创建凭证

有几种存储凭证的方法。一种方法是输入明文密码,然后将该密码直接写入凭证管理器。

首先,让我们看一下明文方法。

假设我们想暂时存储名为 Contoso 的服务器的密码。我们还假设我们的密码是 password,我们的用户名是 User1

然后,我们用来将该信息输入凭证管理器的命令是:

示例代码:

New-StoredCredential -Target Contoso -Username User1 -Password Password

输出:

Flags          : 0
Type           : Generic
TargetName     : Contoso
Comment        : Updated by: User on: 3/30/2022
LastWritten    : 3/30/2022 12:18:55 AM
PaswordSize    : 16
Password       : Password
Persist        : Session
AttributeCount : 0
Attributes     : 0
TargetAlias    :
UserName       : User1

例如,如果我们想向 User2 询问他们的 Contoso 服务器密码,则该命令看起来更像这样:

Get-Credential -Username User2 -Message "Enter your password:" | New-StoredCredential -Target Contoso

当我们运行上面的这段代码时,用户会看到一个密码提示。此提示类似于运行 Get-Credential 命令时的提示。

一旦用户输入密码,脚本将显示与我们之前的示例相同的输出。但是,在现实生活中,密码提示和结果并不会同时出现在屏幕上。

检索存储的凭证

既然我们已经向你展示了如何将凭证输入凭证管理器,那么让我们看看如何检索凭证。例如,如果我们想为 Contoso 检索 User2 的凭证,我们可以通过输入以下命令来实现:

示例代码:

Get-StoredCredential -Target Contoso

输出:

Username                     Password
--------                     --------
User1    System.Security.SecureString

密码显示为安全字符串对象,如上面的输出所示。密码不会显示在屏幕上。

此外,密码采用 PowerShell 脚本可以本地使用的格式,因为它已被转换为 PowerShell 对象。我们可以将 cmdlet 映射到一个变量并将其存储在那里:

$Cred = Get-StoredCredential -Target Contoso

删除存储的凭证

我们不再希望缓存 Contoso 服务器的凭证。相反,我们可以从凭证管理器中清除凭证。输入 Remove-StoredCredential cmdlet,后跟目标开关和服务器名称。

我们还可以使用 Type 开关来指定凭证类型(Type Generic)。

只是一个简短的说明,在运行删除命令时要小心。确保正确写入目标开关值,否则可能会意外删除已存储在凭证管理器中的密码。

下面是一个命令,我们可以使用它来删除 Contoso 服务器的缓存凭证:

Remove-StoredCredential -Target Contoso

当我们使用此命令时,PowerShell 不会生成任何可见的输出。我们可以利用 Get-StoredCredential cmdlet 验证操作是否成功。

我们可以输入 Get-StoredCredential,后跟目标开关和目标名称。下面是命令。

Get-StoredCredential -Target Contoso
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn