在 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