问题
I'm using PowerShell 2.0 (necessary because of SP2010) On Windows Server 2008 R2. I need to retrieve credentials for a process from the Windows Credential Manager. I can't seem to make it work.
I was given this piece of code:
[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]
(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % { $_.RetrievePassword(); $_ }
both lines of code throw errors
Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime : Unable to find type [Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]: make sure that the assembly containing this type is loaded.
and
(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % {$_.RetrievePassword(); $_ }
respectively. I've been trying to somehow import the PasswordVault class. So far Google has failed me, I haven't even been able to find out which assembly it resides in. What am I missing?
回答1:
In powershell5 type:
Install-Module CredentialManager -force
Then
New-StoredCredential -Target $url -Username $ENV:Username -Pass ....
and later
Get-StoredCredential -Target ....
回答2:
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
回答3:
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
来源:https://stackoverflow.com/questions/29103238/accessing-windows-credential-manager-from-powershell