Accessing Windows Credential Manager from PowerShell
In powershell5 type:
Install-Module CredentialManager -force
Then
New-StoredCredential -Target $url -Username $ENV:Username -Pass ....
and later
Get-StoredCredential -Target ....
Source code for the module is https://github.com/davotronic5000/PowerShell_Credential_Manager
You'll need to access the Win32 API to interact with the Credential Manager.
CredMan.ps1 from the Technet scripting gallery nicely demonstrates this.
For simpler usage patterns, like just listing principals or adding new credentials, you can also use cmdkey
, a built-in Windows Command-line utility for credential management
For reusing stored Credentials in PowerShell, this guy seems to have found a way to build a PSCredential
from a Generic Credential handle from the Credential Store, using a technique similar to that of CredMan.ps1: Get-StoredCredential
According to the docs, the PasswordVault class isn't supported on Windows Server 2008 R2.
Minimum supported server Windows Server 2012
https://msdn.microsoft.com/library/windows/apps/windows.security.credentials.passwordvault.aspx
SecretManagement and SecretStore from Microsoft appear to be the official solution. They were officially released on March 25, 2021. The secret can be a credential.
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module SecretManagement.JustinGrote.CredMan # windows credential manager
Register-SecretVault SecretManagement.JustinGrote.CredMan
Set-Secret -Name TestSecret -Secret "TestSecret"
Get-Secret -Name TestSecret -AsPlainText
TestSecret