none
get-credentialを使った入力情報のチェック RRS feed

  • 質問

  • PowerShellよりget-credentialコマンドを使い、ユーザーにログオンIDとパスワードの入力を促し、その後、リモートのサーバのイベントログ(get-winevent)の収集の際にその認証情報を以てこれに接続するスクリプトを使っています。

    ただし、get-wineventはパスワードの間違いなどがあっても再入力を促してくれるものではないようなので、スクリプト側でこの再入力の機能を搭載したいと考えております。リモートのサーバはWindows Server2008ですが、単にログオンIDとパスワードの組み合わせが正か否かのみを確認する手っ取り早い方法は無いものでしょうか。あるいは、ADドメインに参入しているサーバであれば、ADに対するなんらかの問い合わせで可能でしょうか。

    (get-wineventのエラーの内容を拾って、認証エラーだった場合は再度get-wineventを繰り返し実行する、という方法は諸事情により取れません)
    • 編集済み Fuzitaman 2015年4月20日 1:15
    2015年4月20日 1:14

回答

  • チャブーンです。

    この質問の意図が正直わからないのですが、もししたのようなことをお考えでしたなら、残念ながらムリでしょう。

    • Get-Credentialで読み込んだユーザアカウント/パスワード文字列を抽出する
    • リモートサーバに接続する何らかのユーザーアカウントのアカウント/パスワード文字列を抽出する
    • 両者を接続前に事前に比較する

    まず、Get-Credentialで読み込んだ文字列(特にパスワード)は読み込み後に抽出することはできません。それができないようになっているから安全なわけです。どうしても情報がとりたい場合Get-Credentialを使わないインターフェースを用意して、アカウント文字列とパスワード文字列をフックするといった方法が必要になるでしょう。

    また、リモートサーバに接続するアカウントについても同じことが言えます。アカウントとパスワード文字列について、パスワード文字列を取得する方法はありませんので、したがってできません。

    いかなる無理をしてでもやりたい、のであれば、アカウントとパスワードの文字列組み合わせを(運用として)事前に完全指定する方法があります。たとえばアカウントAのパスワードはBであり、Bはいついつまでも絶対変わらないことが担保されていれば、AのパスワードはBとみなせるため、たとえばリモートサーバにローカルアカウントAがあるかどうか/ドメインコントローラにアカウントAがあるかどうかを確認して、あればそのアカウントで接続ができるでしょう。

    こんな「イケてない」方法を書くのはどうかと我ながら思いますが、結論としてはしくみ上ムリだということになると認識しています。

    追記:うえの方法だと、「ユーザーが間違ったパスワードを入力した」場合には機能しませんから、事実上使えないですね。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年4月20日 2:13
    モデレータ

すべての返信

  • チャブーンです。

    この質問の意図が正直わからないのですが、もししたのようなことをお考えでしたなら、残念ながらムリでしょう。

    • Get-Credentialで読み込んだユーザアカウント/パスワード文字列を抽出する
    • リモートサーバに接続する何らかのユーザーアカウントのアカウント/パスワード文字列を抽出する
    • 両者を接続前に事前に比較する

    まず、Get-Credentialで読み込んだ文字列(特にパスワード)は読み込み後に抽出することはできません。それができないようになっているから安全なわけです。どうしても情報がとりたい場合Get-Credentialを使わないインターフェースを用意して、アカウント文字列とパスワード文字列をフックするといった方法が必要になるでしょう。

    また、リモートサーバに接続するアカウントについても同じことが言えます。アカウントとパスワード文字列について、パスワード文字列を取得する方法はありませんので、したがってできません。

    いかなる無理をしてでもやりたい、のであれば、アカウントとパスワードの文字列組み合わせを(運用として)事前に完全指定する方法があります。たとえばアカウントAのパスワードはBであり、Bはいついつまでも絶対変わらないことが担保されていれば、AのパスワードはBとみなせるため、たとえばリモートサーバにローカルアカウントAがあるかどうか/ドメインコントローラにアカウントAがあるかどうかを確認して、あればそのアカウントで接続ができるでしょう。

    こんな「イケてない」方法を書くのはどうかと我ながら思いますが、結論としてはしくみ上ムリだということになると認識しています。

    追記:うえの方法だと、「ユーザーが間違ったパスワードを入力した」場合には機能しませんから、事実上使えないですね。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年4月20日 2:13
    モデレータ
  • ずばり、そういう意図になります。get-credential以外の方法で、対応を考えてみます。ありがとうございました。

    2015年4月20日 4:02