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がどのアセンブリに属しているかを見つけることさえできませんでした。
Powershell5タイプでは:
Install-Module CredentialManager -force
それから
New-StoredCredential -Target $url -Username $ENV:Username -Pass ....
以降
Get-StoredCredential -Target ....
Credential Managerと対話するには、Win32 APIにアクセスする必要があります。
TechnetスクリプトギャラリーのCredMan.ps1 はこれをうまく示しています。
プリンシパルの一覧表示や新しい資格情報の追加など、より単純な使用パターンの場合は、資格情報管理用の組み込みWindowsコマンドラインユーティリティである cmdkey
も使用できます。
PowerShellで保存された資格情報を再利用するために、この男はCredMan.ps1と同様の手法を使用して、資格情報ストアの汎用資格情報ハンドルからPSCredential
を構築する方法を見つけたようです。 Get -StoredCredential
ドキュメントによると、PasswordVaultクラスはWindows Server 2008 R2ではサポートされていません。
サポートされる最小サーバーWindows Server 2012
https://msdn.Microsoft.com/library/windows/apps/windows.security.credentials.passwordvault.aspx