2017-06-26 20 views
0

名前付きパイプバインディングを持つIISアプリケーションがあります。私がpowershellを開いてGet-ChildItem '\\.\pipe\'を実行すると、GUIDのような狂った名前の長い名前付きパイプのリストが表示されます。それらの中には、iisipmから始まるものもあります.iisipmは、IISによって作成されたということです。どのようにこれらのパイプが私のIISアプリケーションに関連付けられているかをプログラムで判断できますか?私のIISアプリケーションに関連付けられた名前付きパイプを見つける

+0

あなたはそれを望んでいますか?とにかく、IIS関連のコマンドレットを介してプールのワーカープロセスを取得し、名前付きパイプ情報を知っているプロセスのプロセス引数を読み取ることができます。 –

+0

@LexLi特定の名前付きパイプが作成された後にアクセス許可を追加する必要がありますが、どちらが新しい権限を必要としているのかわかりません。 – sirdank

答えて

0

名前付きパイプは、SMBを介したI/Oに使用されるファイルシステム上の単なるファイルです。あなたが求めているのは、「デスクトップにファイルがあり、それを使っているのですか?セキュリティ記述子のSACLを介して通常のファイルへの読み取り/書き込みを特定し、セキュリティイベントログを使用する方法が組み込まれているため、ご質問は少し抽象的です。名前付きパイプでもこれを行うことができますが、すべての名前付きパイプにSACLを追加し、適切な監査を有効にする必要があります。

この場合、最も簡単な方法は、Process Explorerを使用して、名前付きパイプに対する開いているハンドルをすべて検索し、そのハンドルを持つIISワーカープロセスを見つけることです。管理者

  • を選択し、検索のための
  • 押し、CTRL-F "ファイルハンドルやDLLを..."
  • タイプ」として

    1. 実行プロセスエクスプローラ、これを行うには

      \ Device \ NamedPipe \ "

    どのプロセスがIISプロセスであるかを識別し、どのパイプにハンドルを開いているかを特定します。

    編集:Handle.exe(またSysinternalsから)もこの情報を提供する必要があります。

  • +0

    残念ながら、これをプログラムで見つける必要があるため、私はこれを受け入れることができません。特定のユーザーにIIS Webサイトの名前付きパイプへの書き込みアクセス許可を与える方法を尋ねる方が有益でしょうか? – sirdank

    +0

    handle.exeがSTDOUTに出力します。ファイルのハンドルを列挙するためにWindows APIにコードを記述しない場合は、巨人の肩(この場合はMark Russinovich)に立つ必要があります。あなたのiis PIDを取得し、handle.exeに渡し、あなたのパイプを見つけてください。これは間違いなくプログラムによって実行できます:handle.exe -a -p pid-number – thepip3r

    関連する問題