Get-Credentialと入力すると資格情報入力用のダイアログが表示され、そこにユーザーIDとパスワードを指定すると資格情報を返してくれる。
$cred = Get-Credential |
しかし、処理の中には対話処理が許されない場合もある。
本来は上記の$credをDISKに保存しておき、実行時にそれを使うのが筋だろうが、こいつはログオンユーザーが変わると復元できない。
というわけで資格情報をプレーンテキストから作る方法も押さえておきたい。
New-Credentialなんてコマンドがあると良いのだがそんなことはなさそう。
そこで、$cred | Get-Member としてみると、
TypeName: System.Management.Automation.PSCredential Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetNetworkCredential Method System.Net.NetworkCredential GetNetworkCredential() GetType Method type GetType() ToString Method string ToString() Password Property System.Security.SecureString Password {get;} UserName Property System.String UserName {get;} |
となっているので、このPSCredentialを作ってやればよい。
こいつのコンストラクタをみるとUserNameとPasswordを指定することが判る。
UserNameはStringなので問題なし。PasswordはSecureStringクラスとなっている。
幸いSecureStringクラスはConvertTo-SecureStringコマンドレットで作ることができる。
$password = ConvertTo-SecureString "PassHoge" -asplaintext -force $cred = New-Object System.Management.Automation.PsCredential "UserHoge",$password |
この情報がすごく参考になりました。
返信削除ありがとうございます。
今後もまた参考にさせてください。
ダイレクトに使える情報で
返信削除とても助かりました!