テキスト ストリームがサービスに返される前に、外部プロセスを呼び出してテキスト ストリームを変更できるサービスを実行しています。テキスト ストリームは stdout でサービスから外部プロセスに渡され、変更された結果は stdin でサービスから読み取られます。つまり、外部プロセス (コマンド) は、テキストの「フィルター」として使用できます。PowerShell スクリプトを使用してテキスト ストリームを変更したいと考えています。コマンド「powershell -executionpolicy bypass -noninteractive ./myscript.ps1」を使用して、win 2008r2 のサービスからスクリプトを正常に起動できます。
write-host コマンドレットを使用して、スクリプトが stdout のサービスにテキストを返すようにすることができます。私の問題は、スクリプト内の標準入力のテキストを読み取る方法が見つからないことです。インタラクティブなシェルが必要なため、読み取りホストは機能しないようです。
サービスから tmp ファイルへの stdout の書き込みを避け、サービスがマルチスレッド (一度に複数の外部コマンドを起動できる) および tmp ファイル管理 (ロック、一意のファイル名など) であるため、スクリプトでそのファイルを読み取りたいは望ましくありません。
これは可能ですか、それともたとえば Perl を使用する必要がありますか? Powershell は、すべての Windows 2008 マシンにプリインストールされているため、魅力的です。