Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用PsExec生成子进程会导致stdout被截断_Javascript_Node.js_Psexec - Fatal编程技术网

Javascript 使用PsExec生成子进程会导致stdout被截断

Javascript 使用PsExec生成子进程会导致stdout被截断,javascript,node.js,psexec,Javascript,Node.js,Psexec,我的目标是能够在远程机器上执行命令,并从运行的命令中获得完整的stdout响应。我得到的是一个截断的结果。当我通过命令提示符运行相同的命令时,我从命令运行中获得完整的输出。这是我的密码: var process = spawn('PsExec.exe', ['\\\\servername', 'ipconfig']); var doOnce = true; process.stdout.on('data', function (data) { log

我的目标是能够在远程机器上执行命令,并从运行的命令中获得完整的stdout响应。我得到的是一个截断的结果。当我通过命令提示符运行相同的命令时,我从命令运行中获得完整的输出。这是我的密码:

    var process    = spawn('PsExec.exe', ['\\\\servername', 'ipconfig']);
    var doOnce = true;
    process.stdout.on('data', function (data) {
        log.info('stdout: ' + data.toString());
        if(doOnce){
            doOnce = false;
            process.stdin.write('ipconfig');}
    });

    process.stderr.on('data', function (data) {
        log.info('stderr: ' + data.toString());
    });

    process.on('exit', function (code) {
        log.info('child process exited with code ' + code);
    });
执行时,我得到以下控制台输出。可以看出,所有ipconfig都已被截断。如果我执行另一个命令,比如netstat,我会在截断发生之前得到大部分结果,所以我认为这与缓冲区无关。我现在真的没有主意了

info: stderr: 
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com


info: stdout: 
Windows IP Configuration



ipconfig exited on servername with error code 0.

info: child process exited with code 0

尝试使用{stdio:'inherit'}选项

var spawn = require('child_process').spawn,
appname = spawn('psexec.exe', ['-accepteula', '\\\\remotepcname', '-u', 'domain\\username', '-p', 'supersecretpassword', 'ipconfig'], { stdio: 'inherit' });

我也有同样的问题,这似乎是唯一有效的解决办法。@ebraley。我也在尝试做同样的事情,但是这个解决方案对我不起作用。