我正在尝试从node.js调用PowerShell脚本。 ps脚本工作正常,但是当我从node.js子进程运行时,无法找到SQL snapins。
这是node.js脚本:
"use strict";
var spawn = require('child_process').spawn;
var child = spawn('powershell.exe', ['.\\test.ps1']);
child.stdout.on("data", function (data) {
console.log("Powershell Data: " + data);
});
child.stderr.on("data", function (data) {
console.log("Powershell Errors: " + data);
});
child.on("exit", function () {
console.log("Powershell Script finished");
});
child.stdin.end();
这是PowerShell脚本(test.ps1,这是一个只显示错误的精简脚本):
Add-PSSnapin SqlServerCmdletSnapin100
当我从cmd窗口或PS窗口运行test.ps1时,没有错误。当我运行node.js代码时,我得到:
Add-PSSnapin : The Windows PowerShell snap-in 'SqlServerCmdletSnapin100'
is not installed on this machine.
我错过了什么?
答案 0 :(得分:0)
这是由使用32位版本的node.js引起的。通过安装64位版本,问题得以解决。