在 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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn