以前、P/Invoke して Windows Credential Manager で PowerShell の認証情報を格納したり取得する簡単なモジュールを紹介しました。
実際これは、valentia を初めとして、認証を必要とするモジュールで使っています。
もっといい方法ないかなぁと、Windows Store Apps はどうしてるか調べていたところ、Windows.Security.Credentials namespace
を使った方法がスタンダードなようですね。
今回は、PowerShell でWindows.Security.Credentials
を使って認証情報を格納する方法を見てみましょう。
目次
どこに保持されるの?
資格情報マネージャー(Windows Credential Manager) にある、Web資格情報(Web Credential) です。
以前作成したものが対象にしていたのはWindows Credentials だったので、ここは違いますね。
さようなら P/Invoke
けた違いに書きやすくなりました。
例えば、現在設定されている一覧を取得するなら2行で済みます。
もちろん、追加も削除も簡単です。便利ですね。
モジュールにして使いやすくする
PowerShell の認証型はPSCredential
です。
一方で、Windows.Security.Credentials
名前空間では Windows.Security.Credentials.PasswordCredential
を利用します。型が違うのでコンバーターとかさくっと作れば ok です。
ということで、モジュールです。
関数一覧
Config を一応用意していますが、使ってないので除いておきます。
CommandType Name Version Source ----------- ---- ------- ------ Function ConvertFrom-PasswordCredential 1.0.0 WindowsCredentialVault Function ConvertTo-PasswordCredential 1.0.0 WindowsCredentialVault Function Get-WindowsCredential 1.0.0 WindowsCredentialVault Function Remove-WindowsCredential 1.0.0 WindowsCredentialVault Function Set-WindowsCredential 1.0.0 WindowsCredentialVault Function Test-WindowsCredential 1.0.0 WindowsCredentialVault
Get/Remove/Set/Test がそろっているので、大体やりたいことはできると思います。ReadMe に使い方の説明を書いておいたのでどうぞ。
まとめ
既存の差し替え検討してもいいぐらいには使いやすかったのでいいですね。