如何通过nodejs对windows台机器执行远程操作

how to execute remote operation to windows machine via nodejs

我终于加入了社区

关于我在这个社区的第一个问题:

一般我想对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 远程机器做同样的事情时,事情变得复杂了。

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

似乎以下对我有用:

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”, 系统调用:“读”, 级别:“连接套接字”, }