こんにちは。
直接的な回答ではありませんが、参考になればと思い返信します。
まず、System.Net.NetworkCredentialはPowerShellに限らず.NET Framework全般で認証情報を取り扱うクラスとなります。
PasswordプロパティはただのString型ですが、内部的にはSecureStringでパスワードを保持しており、プロパティにアクセスするときにString型に復号化して平文のパスワードが取得できる様になっています。
詳細は実装のこのあたりで確認できます。
なぜその様な仕様にしたのかは私にはわかりませんが、おそらくは利便性のためかと思われます。
(ただし明確な根拠はありません。)
そして、getCredentials
(おそらくGet-Credential
コマンドレットの事だと推測します)ではSystem.Management.Automation.PSCredential型のオブジェクトを取り扱い、これは、簡単に言ってしまうとPowerShell専用で認証情報を扱うクラスとなります。
ただ、PSCredentialも内部的にはNetworkCredentialを使うことがあり、GetNetworkCredential
メソッドやキャストによってPSCredentialからNetworkCredentialを取得し、平文のパスワードにアクセスすることができます。
powershell
1# Get-CredentialではPSCredentialクラスを扱う
2$cred = Get-Credential
3
4# GetNetworkCredentialメソッドでNetworkCredentialを取得できる
5$cred.GetNetworkCredential()
6
7# PSCredentialはNetworkCredentialにキャストすることができ、そこから平文のパスワードを取得することができる
8 ([Net.NetworkCredential]$cred).Password
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/24 07:15 編集
2017/09/24 15:04
2017/09/25 22:11 編集
2017/09/26 00:04
2017/09/29 21:40