在 PowerShell 中使用憑證管理器模組

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  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