1

私のプログラムでは、パラメーターでユーザーにパスワードを要求する必要があります。

[Cmdlet(VerbsCommon.Get, "MyTest"]
public class GetMyTest : PSCmdlet
{
    [Parameter(Mandatory=true)]
    public ? Password { get; set;}
}

パスワードに使用する正しいタイプがわかりません。別の質問: カスタム作成された PowerShell コマンドレットでパスワードを安全に処理するにはどうすればよいですか?

受け入れられた回答では、コードで read-host を使用するように求められましたが、このフィールドを要求するにはパラメーターを使用する必要があります。

また、パスワードに SecureString を使用しようとしましたが、安全な文字列ではなく文字列として自動的に受け入れられるため、このパラメーターに SecureString を指定することはできません。

次の使用法を達成する方法はありますか:

Get-MyTest -Password ***** (where I actually type in 'abcde' but the input is masked.)
4

2 に答える 2

1

コマンド ライン入力の特定の部分をアスタリスクで保護する方法はありません。コマンド ライン入力は単なるプレーン テキストです。

オプション

  • パスワードをファイルに保存して、入力に表示されないようにします。ここでの問題は、そのファイルを保護する方法ですが、場合によっては機能する可能性があります。つまり、web.config で暗号化された設定と同様の暗号化されたパスワードを指定します。
  • ユーザーにパスワードの入力を要求する
  • 代わりに、パスワードはユーザーがそのアカウントでログインすることを要求します (Windows 認証の場合)
  • 有効期間の短いトークンを取得する方法がある場合 (つまり、OAUTH を使用)、パスワードの代わりにそれを平文で使用できます。
于 2014-01-30T17:30:28.397 に答える