【问题标题】:how to execute remote operation to windows machine via nodejs如何通过nodejs对windows机器执行远程操作
【发布时间】:2021-08-06 21:38:33
【问题描述】:

我终于加入了社区

所以对于我在这个社区的第一个问题:

一般我想在node.js中对远程windows机器执行一些远程操作(当然我对远程机器有权限、凭证等)。

具体来说,现在我正在尝试从 Windows 机器中检索服务列表。 我已经尝试使用 wmi-client 包来做到这一点:

const WmiClient = require('wmi-client');
var wmi = new WmiClient({
    username: '*****',          //credentials - username 
    password: '*****',          //credentials - password
    host: '*********',          // remote windows machine
});

wmi.query(`Select * from Win32_Service`, function (err, result) {
    console.log(result);
});

但我不断收到错误:退出代码:44125。无效的全局开关。

我会提到在 powershell 中使用 wmi 对我没有任何问题。 但是当我尝试在 nodejs 中使用相同的技术时,它失败了。 我究竟做错了什么?还有其他建议吗?

顺便提一下,当我需要从 linux 机器上检索相同的信息时,我可以使用“simple-ssh”包轻松完成,没有任何问题:

    const SSH = require('simple-ssh');
    
    var ssh = new SSH({
      host: '*******',         // remote linux machine
      user: '*******',         // credentials - username
      pass: '*******'          // credentials - password
    });

      ssh.exec(`systemctl list-units --full -all`, {
          out: function(stdout) {
            // stdout as expected
          }
      }).start()});

但是当尝试对 Windows 远程机器执行相同操作时,事情会变得复杂。

有什么想法吗? 非常感谢!

【问题讨论】:

    标签: node.js wmi


    【解决方案1】:

    似乎以下内容对我有用:

    var exec = require('node-ssh-exec');
    
    var config = {
        host: '*******',
        username: '***',
        password: '***'
    },
    command = 'sc query';
    
    exec(config, command, function (error, response) {
    if (error) {
        throw error;
    }
    

    响应符合预期,但由于某种原因与之相关的错误不为空:

    { 错误号:-4077, 代码:“ECONNRESET”, 系统调用:“读取”, 级别:“连接套接字”, }

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 2012-08-23
      • 2011-08-11
      • 2010-11-07
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 2012-09-12
      相关资源
      最近更新 更多