javascript - 使用 PsExec 生成子进程会导致标准输出被 chop

标签 javascript node.js psexec

我的目标是能够在远程计算机上执行命令并从运行的命令中获取完整的标准输出响应。我得到的是一个 chop 的结果。当我通过命令提示符运行相同的命令时,我会得到命令运行的完整输出。这是我的代码:

    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 都已被 chop 。如果我执行另一个命令(例如 netstat),我会在 chop 发生之前获得大部分结果,因此我不认为这与缓冲区有任何关系。我现在真的没有主意了。

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' });

关于javascript - 使用 PsExec 生成子进程会导致标准输出被 chop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395544/

相关文章:

javascript - 在页面加载时将本地存储变量绑定(bind)到元素

javascript - 编辑 Node 中的大文件

powershell - 批处理文件、Powershell 脚本、PSExec 和系统用户

java - 执行 psexec 并输出到本地主机上的文件

c# - 如何确定退出代码来自哪里?

javascript - getComputedStyle (or) $.css(map) <-- 获取每个样式声明

javascript - 按数字排序多数组javascript

javascript - 诺基亚 map (v2.2) : mousedown/mouseup issue

node.js - 是否有任何技术原因可以避免 npm 中的自依赖本地依赖(文件引用)?

Javascript 记录敏感数据