tech.guitarrapc.cóm

Technical updates

PowerShell も Windows Store Apps 同様に Windows.Security.Credentials namespace を使って認証情報を管理できるようにしてみる

以前、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 だったので、ここは違いますね。

f:id:guitarrapc_tech:20150120040730p:plain

さようなら P/Invoke

けた違いに書きやすくなりました。

例えば、現在設定されている一覧を取得するなら2行で済みます。

もちろん、追加も削除も簡単です。便利ですね。

モジュールにして使いやすくする

PowerShell の認証型はPSCredential です。

一方で、Windows.Security.Credentials名前空間では Windows.Security.Credentials.PasswordCredentialを利用します。型が違うのでコンバーターとかさくっと作れば ok です。

ということで、モジュールです。

f:id:guitarrapc_tech:20150120042904p:plain

関数一覧

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 に使い方の説明を書いておいたのでどうぞ。

まとめ

既存の差し替え検討してもいいぐらいには使いやすかったのでいいですね。