none
PowerShellからリモート実行したコンソールアプリの入力ができない RRS feed

  • 質問

  • クライアント(Win10)からサーバ(2016server)にPowerShellの「Enter-PSSession」コマンドでリモート接続しています。
    この状態でコンソールアプリケーションを実行したとき、キーボード入力を受け付けてくれません。
    具体的には、以下サンプルコードをconsoleapp1.exeとして作成して、
    Sub Main()
        Console.WriteLine("何か入力")
        Dim text = Console.ReadLine()
        Console.WriteLine("'{0}'と入力", text)
    End Sub
    Enter-PSSessionでサーバに接続後、consoleapp1を実行しても以下のように入力要求がありません。
    [192.168.0.xxx]: PS C:\Users\User\Documents> .\consoleapp1
    何か入力
    ''と入力
    [192.168.0.xxx]: PS C:\Users\User\Documents>
    以下のように実行すれば入力内容を引き渡すことができるのはわかっているのですが、対話処理をしたので困っています。
    [192.168.0.xxx]: PS C:\Users\User\Documents> "a" | .\consoleapp1
    何か入力
    'a'と入力
    [192.168.0.xxx]: PS C:\Users\User\Documents>
    このような対話処理をpowershellのリモート接続環境にて行う事はできないのでしょうか。
    わかる方がいらっしゃいましたらご教授願います。
    2019年6月27日 0:07

回答

  • > このような対話処理をpowershellのリモート接続環境にて行う事はできないのでしょうか。

    コンソールアプリで標準入力を介して対話的に文字列を渡すことは、おそらくできないものと思います。

    コンソールアプリではなく、PowerShellスクリプトでRead-Hostコマンドレットや$host.UI.ReadLine()などを利用するのであれば、リモートでも可能かと思います。

    2019年6月27日 3:12
    モデレータ

すべての返信

  • > このような対話処理をpowershellのリモート接続環境にて行う事はできないのでしょうか。

    コンソールアプリで標準入力を介して対話的に文字列を渡すことは、おそらくできないものと思います。

    コンソールアプリではなく、PowerShellスクリプトでRead-Hostコマンドレットや$host.UI.ReadLine()などを利用するのであれば、リモートでも可能かと思います。

    2019年6月27日 3:12
    モデレータ
  • やはりそうなんですか。

    いろいろ試してダメだったので...

    回答ありがとうございました。

    2019年6月27日 13:14