ローカル コンピューター上のすべてのユーザーが利用できるように、Powershell の名前付きパイプを設定するにはどうすればよいですか?
私は小さな Powershell スクリプトを書いています。ローカル コンピューター上のすべてのユーザーが、このスクリプトによって消費される名前付きパイプに書き込めるようにする必要があります。
次の方法でパイプをセットアップできます。
$pipe=new-object System.IO.Pipes.NamedPipeServerStream("\\.\pipe\mypipe")
$pipe.WaitForConnection()
$sr = new-object System.IO.StreamReader($pipe)
while (($cmd= $sr.ReadLine()) -ne 'exit')
....
これと組み合わせて System.IO.Pipes.PipeSecurity を使用する方法がわかりません。
編集: 問題がある場合は、PS v2 を使用しています。
EDIT2:
名前付きパイプのセキュリティ定義を作成する作業が少し進みました。結び方がまだよくわからない。
$PipeSecurity = new-object System.IO.Pipes.PipeSecurity
$AccessRule = New-Object System.IO.Pipes.PipeAccessRule( "Users", "FullControl", "Allow" )
$PipeSecurity.AddAccessRule($AccessRule)
$pipe=new-object System.IO.Pipes.NamedPipeServerStream("\\.\pipe\mypipe");
$pipe.SetAccessControl( $PipeSecurity )