C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: PsExecの標準出力取得


(過去ログ 134 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■79126 / inTopicNo.1)  PsExecの標準出力取得
  
□投稿者/ Muu (5回)-(2016/03/09(Wed) 22:29:49)

分類:[C#] 

2016/03/09(Wed) 22:38:40 編集(投稿者)

Windows8 32/64bit Vs2015 C# .net4.5

お世話になります。
PsExecを使って他の端末上のバッチをリモート実行し、実行結果の標準出力の内容
を取得しようとしています。


実行するバッチは

(ローカル側:test.bat)
@echo off
echo ●test.bat
psexec \\192.168.1.10 -u *** -p **** "d:\DirD.bat"
exit /b 0

(リモート側:d:\DirD.bat)
dir c:\windows\system32

コンソールからtest.batを直接実行するとリモートのDirD.batの実行結果
が表示されます。また、以下のようにリダイレクトすると
 test.bat > d:\test.log
ログファイル(test.log)にリモートで実行したdirの結果
が保存されます。

これをC#から実行し、標準出力の内容を横取りして画面表示
やその他処理に利用しようとしているのですが。

ソースはドボン様のサイトを参考に

●非同期で出力データを取得する
http://dobon.net/vb/dotnet/process/standardoutput.html

を使用し、 p.StartInfo.FileName にローカルのバッチファイル名をセット
しています。

上記で実行した場合、画面に表示されたのは「●test.bat」
だけで、リモート実行されるDirD.batの出力部分がとれませんでした。

コンソールから直接実行した場合、リモート実行結果の画面表示、
ファイルへのリダイレクトはできているのですが、アプリから横取
りしようとすると取得できないのはなぜでしょうか。

よろしくお願いします。

※PsExec
https://technet.microsoft.com/ja-jp/sysinternals/bb897553.aspx

引用返信 編集キー/
■79135 / inTopicNo.2)  Re[1]: PsExecの標準出力取得
□投稿者/ PANG2 (107回)-(2016/03/10(Thu) 14:59:15)
2016/03/10(Thu) 15:02:13 編集(投稿者)

# PsExecは触ったことないですが、

以下のパターンで動作しますか?

(1) psexec の代わりに ipconfig /all を起動してみる。
(2) 非同期ではなく同期で起動してみる。
(3) test.batを直接ではなくComSpec経由で起動してみる。
(4) test.batではなくpsexecを直接起動してみる。

http://codepanic.itigo.jp/cs/process_cmd.html
引用返信 編集キー/
■79136 / inTopicNo.3)  Re[1]: PsExecの標準出力取得
□投稿者/ PANG2 (108回)-(2016/03/10(Thu) 15:02:22)
2016/03/10(Thu) 15:02:50 編集(投稿者)

削除
引用返信 編集キー/
■79144 / inTopicNo.4)  Re[2]: PsExecの標準出力取得
□投稿者/ Muu (6回)-(2016/03/10(Thu) 17:50:24)
2016/03/10(Thu) 17:51:00 編集(投稿者)

PANG2 様
お世話になります。
その後、少し状況がかわりまして、

前記のソースをC#で
・コンソールアプリとして作成
 →PsExecの先のバッチの実行結果を取得できた。

・フォームアプリケーションとして作成
 →PsExecの先のバッチの実行結果を取得できない。

上記のようになっています。
同じソースを張り付けているにも関わらず、フォームアプリケーション
では取得できないので、内部で何か違いが発生しているのでしょうか。



(1) psexec の代わりに ipconfig /all を起動してみる。
 ローカル実行の内容は表示されます。
(2) 非同期ではなく同期で起動してみる。
 状況変わらず、表示されません。
(3) test.batを直接ではなくComSpec経由で起動してみる。
 状況変わらず、表示されません。
(4) test.batではなくpsexecを直接起動してみる。
 状況変わらず、表示されません。

                     以上


引用返信 編集キー/
■79149 / inTopicNo.5)  Re[3]: PsExecの標準出力取得
□投稿者/ PANG2 (109回)-(2016/03/11(Fri) 11:18:02)
No79144 (Muu さん) に返信
> 同じソースを張り付けているにも関わらず、フォームアプリケーション
> では取得できないので、内部で何か違いが発生しているのでしょうか。

psexec 内部で別EXEをキックしているのかな?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -