web-dev-qa-db-ja.com

PowerShellからWindows Credential Managerにアクセスする

Windows Server 2008 R2でPowerShell 2.0(SP2010が必要なため)を使用しています。 Windows Credential Managerからプロセスの資格情報を取得する必要があります。私はそれを機能させることができないようです。

次のコードが渡されました:

[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]
(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % { $_.RetrievePassword(); $_ }

コードの両方の行がエラーをスローします

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.

そして

(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % {$_.RetrievePassword(); $_ } 

それぞれ。 PasswordVaultクラスを何らかの方法でインポートしようとしています。これまでのところ、Googleは私に失敗しました。Googleがどのアセンブリに属しているかを見つけることさえできませんでした。

11
Shaggydog

Powershell5タイプでは:

   Install-Module CredentialManager -force

それから

   New-StoredCredential -Target $url -Username $ENV:Username -Pass ....

以降

   Get-StoredCredential -Target .... 
20
majkinetor

Credential Managerと対話するには、Win32 APIにアクセスする必要があります。

TechnetスクリプトギャラリーのCredMan.ps1 はこれをうまく示しています。

プリンシパルの一覧表示や新しい資格情報の追加など、より単純な使用パターンの場合は、資格情報管理用の組み込みWindowsコマンドラインユーティリティである cmdkey も使用できます。

PowerShellで保存された資格情報を再利用するために、この男はCredMan.ps1と同様の手法を使用して、資格情報ストアの汎用資格情報ハンドルからPSCredentialを構築する方法を見つけたようです。 Get -StoredCredential

9

ドキュメントによると、PasswordVaultクラスはWindows Server 2008 R2ではサポートされていません。

サポートされる最小サーバーWindows Server 2012

https://msdn.Microsoft.com/library/windows/apps/windows.security.credentials.passwordvault.aspx

3
David Anderson