如何通过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”,
系统调用:“读”,
级别:“连接套接字”,
}
我终于加入了社区
关于我在这个社区的第一个问题:
一般我想对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”, 系统调用:“读”, 级别:“连接套接字”, }